2011-05-12 17 views
5

क्या returnURL को अनदेखा करने के लिए फॉर्म प्रमाणीकरण प्राप्त करने का कोई आसान तरीका है?प्रमाणीकरण प्रपत्र वापस कर सकते हैं returnUrl

तो उपयोगकर्ता एक लिंक, साइट टाइमआउट पर क्लिक करता है, वे मेरे लॉगिन पेज पर रीडायरेक्ट हो जाते हैं (जो यूआरएल में रिटर्न यूआरएल जोड़ता है) - मैं नहीं चाहता कि यह घटित हो, या जब वे फिर से लॉगिन करते हैं तो उन्हें अनदेखा किया जा सकता है ।

if (!string.IsNullOrEmpty(Request.QueryString["returnUrl"])) 
{ 
    Response.Redirect("path/to/my/login.aspx"); 
} 

दूसरे शब्दों में, returnUrl querystring पैरामीटर की उपस्थिति के लिए अपने प्रवेश पृष्ठ में जाँच करें और अगर यह है:

उत्तर

3

एक विकल्प है जो निम्न है अपनी प्रवेश फार्म का कोड-पीछे में कुछ कोड है वर्तमान में, अपने आप को वापस पुनर्निर्देशित करके इसे बाहर निकालें।

+0

कि एक छोटे से ... महंगा नहीं है:

Global.asax फ़ाइल में निम्नलिखित डाल? –

1

मुझे नहीं लगता कि आप प्रपत्र प्रमाणीकरण का उपयोग करते समय URL पर कार्रवाई करने से रोक सकते हैं।

हालांकि, अगर आप नहीं जरूरतRedirectFromLoginPage कॉल करने के लिए (जो मैं क्या आप समय में कर रहे हैं अनुमान जाएगा) करते हैं, आप जो भी कर सकते हैं वह केवल SetAuthCookie का उपयोग लॉगिन स्थिति और Response.Redirect को इसके बाद कहीं भी पसंद करने के लिए करें।

3

यदि आप इसे दिखाना नहीं चाहते हैं तो आप इसे बंद कर सकते हैं। मैं ऐसा इसलिए करता हूं क्योंकि मैं इसे एसईओ-अनुकूल यूआरएल के साथ दिखाना नहीं चाहता हूं जिसे मैंने सेटअप किया है।

Protected Sub Application_EndRequest(sender As Object, e As System.EventArgs) 

     Dim redirectUrl As String = Me.Response.RedirectLocation 
     If Not Me.Request.RawUrl.Contains("ReturnUrl=") AndAlso Not String.IsNullOrEmpty(redirectUrl) Then 
      Me.Response.RedirectLocation = Regex.Replace(redirectUrl, "\?ReturnUrl=(?'url'[^&]*)", String.Empty) 
     End If 

End Sub 
+0

बहुत अच्छा, धन्यवाद –

संबंधित मुद्दे