2012-03-18 24 views
5

मेरी ASP.NET वेब अनुप्रयोग में, इस परियोजना संरचना निम्न छवि से दिखाया गया है:पुनर्निर्देशन के बाद लॉगिन: Web.config

:

enter image description here

साइट की Web.config प्रपत्र प्रमाणीकरण है

<authentication mode="Forms"> 
    <forms loginUrl="~/Login.aspx" timeout="2880" />  
</authentication> 

और पन्ने फ़ोल्डर की Web.config है:

<?xml version="1.0"?> 
<configuration> 
<system.web> 
    <authorization> 
    <allow roles="Admin"/> 
    <deny users="*"/> 
    </authorization> 
</system.web> 

मेरे पास भूमिका व्यवस्थापक के साथ एक उपयोगकर्ता व्यवस्थापक है। सफल प्रवेश के बाद मैं Home.aspx में उपयोगकर्ता रीडायरेक्ट करने के लिए कोशिश कर रहा हूँ पन्ने फ़ोल्डर के रूप में में रहता है:

protected void EMSLogin_Authenticate(object sender, AuthenticateEventArgs e) { 
    TextBox UserNameTextBox = EMSLogin.FindControl("UserName") as TextBox; 
    TextBox PasswordTextBox = EMSLogin.FindControl("Password") as TextBox; 

    if (Membership.ValidateUser(UserNameTextBox.Text, PasswordTextBox.Text)) { 
    Response.Redirect("~/Pages/Home.aspx"); 
    } 
} 

लेकिन यह काम नहीं कर रहा। यह फिर से लॉगिन पेज पर रीडायरेक्ट कर रहा है यानी, URL.bx यूआरएल के साथ: localhost:3695/Login.aspx?ReturnUrl=%2fPages%2fHome.aspx

मैं इसे कैसे प्राप्त कर सकता हूं? कोई भी जानकारी बहुत उपयोगी होगी।

सम्मान।

उत्तर

8

Membership.ValidateUser केवल सदस्यता प्रदाता के खिलाफ उपयोगकर्ता नाम और पासवर्ड को मान्य करता है। यह प्रमाणीकरण कुकी को उत्सर्जित नहीं करता है।

आप इस आप पुनर्निर्देशित करने से पहले SetAuthCookie विधि का उपयोग करने की आवश्यकता है करना चाहते हैं:

if (Membership.ValidateUser(UserNameTextBox.Text, PasswordTextBox.Text)) 
{ 
    FormsAuthentication.SetAuthCookie(UserNameTextBox.Text, false); 
    Response.Redirect("~/Pages/Home.aspx"); 
} 

या यदि आपका web.config में आप सेट:

<authentication mode="Forms"> 
    <forms loginUrl="~/Login.aspx" defaultUrl="~/Pages/Home.aspx" timeout="2880" /> 
</authentication> 

आप भी RedirectFromLoginPage इस्तेमाल कर सकते हैं विधि जो प्रमाणीकरण कुकी को उत्सर्जित करेगी और आपको डिफ़ॉल्ट पृष्ठ पर रीडायरेक्ट करेगी:

if (Membership.ValidateUser(UserNameTextBox.Text, PasswordTextBox.Text)) 
{ 
    FormsAuthentication.RedirectFromLoginPage(UserNameTextBox.Text, false); 
} 
+0

बहुत बहुत धन्यवाद ... –

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