रजिस्टर पेज ASP.NET C# में लॉगिन पेज पर रीडायरेक्ट होता रहता है

प्रोग्रामिंग


ऐसा केवल तभी होता है जब मैंने अपनी Web.config फ़ाइल में प्रमाणीकरण कॉन्फ़िगर किया हो। मुझे लॉग इन करने के लिए इसकी आवश्यकता है। हालाँकि मैं इस रीडायरेक्ट को कैसे रोकूँ?

वेब.कॉन्फिग

एचटीएमएल
<authentication mode="Forms">
      <forms loginUrl="~/Login.aspx"
        name=".ASPXFORMSAUTH" />
    </authentication>
    <authorization>
      <deny users="?" />
    </authorization>

और यहां वह यूआरएल है जो मुझे मिला:

http://localhost:49575/(S(teuci1cr4nob5isksiq5rsf))/Login.aspx?ReturnUrl=%2fRegister.aspx

समाधान 1

ऐसा इसलिए है क्योंकि सर्वर उपयोगकर्ता को इस एकमात्र पृष्ठ से लॉगिन करने का प्रयास करेगा जिसका स्थान आपने निर्दिष्ट किया है।

समस्या को कम करने के दो तरीके हैं। पहला समाधान एक ही पृष्ठ पर एक रजिस्टर और लॉगिन फॉर्म प्रदान करना है। इस तरह, आप केवल एक पेज बना सकते हैं और उपयोगकर्ता उसी पेज से पंजीकरण या लॉगिन कर सकेगा। यदि आप काम करने की इस web.config पद्धति से जुड़े रहना चाहते हैं तो इसका उपयोग किया जाएगा।

हालाँकि, अन्य विधि वेबसिक्योरिटी क्लास का उपयोग कर रही है और इसकी IsAuthenticated प्रॉपर्टी का उपयोग करके यह निर्धारित करती है कि उपयोगकर्ता लॉग इन है या नहीं और फिर उसे रीडायरेक्ट करें। आप यह भी निर्धारित करने में सक्षम होंगे कि उपयोगकर्ता किस पेज पर है (रजिस्टर या लॉगिन करें; यदि वह लॉगिन या रजिस्टर पर है तो रीडायरेक्ट न करें, अन्यथा उसे लॉगिन या रजिस्टर पेज पर रीडायरेक्ट करें) और फिर उसे एक साधारण रजिस्टर द्वारा लॉगिन करने दें . इस कदर,

सी#
if(!WebSecurity.IsAuthenticated) {
   // No user logged in, 
   Response.Redirect("~/Login.aspx");
}

इससे काम चल जाएगा. मैं व्यक्तिगत रूप से कोड-बैक में उपयोगकर्ताओं के मूल्यों और स्थिति की जांच करने की दूसरी विधि का उपयोग करना चाहूंगा।

コメント

タイトルとURLをコピーしました