मेरा लॉगिन नियंत्रण अब इरादा के अनुसार काम नहीं कर रहा है। यह एक डेटाबेस से उपयोगकर्ता नाम और पासवर्ड खींचता है और फिर उपयोगकर्ता को Home.aspx पर पुनर्निर्देशित करता है। दुख की बात है कि पुनर्निर्देशन नहीं होता है। यह यूआरएल के अंत में इसे जोड़ता है, लेकिन कुछ भी नहीं होता है

ReturnUrl=%2fHome.aspx

यह संक्षिप्त एएसपी कोड है

<asp:Login ID="Login1" runat="server" OnAuthenticate= "ValidateUser" 
DestinationPageUrl="~/Home.aspx"> </asp:Login>

प्लस .cs कोड

    protected void ValidateUser(object sender, AuthenticateEventArgs e)
    {
                SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["DB_CONNE"].ConnectionString);
                con.Open();
                SqlCommand cmd = new SqlCommand("SELECT * FROM Users WHERE Username =@Username and Password=@Password", con);
                cmd.Parameters.AddWithValue("@Username", Login1.UserName);
                cmd.Parameters.AddWithValue("@Wachtwoord", Login1.Password);
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataTable dt = new DataTable();
                da.Fill(dt);

        Session["Uname"] = Login1.UserName;

        if (dt.Rows.Count > 0)
        {
            Response.Redirect("Home.aspx");
        }

मैं कार्यक्षमता पर काम कर रहा हूं जिसमें लॉग इन नहीं है उपयोगकर्ता कुछ पृष्ठों तक नहीं पहुंच सकते हैं, लेकिन मुझे यकीन नहीं है कि यह वह चीज है जो इसे खराब कर रही है ..

थोडा थोडा थोपने के बाद मैंने देखा कि इनकार करने वाले उपयोगकर्ताओं का इस पर प्रभाव पड़ता है, लेकिन गैर-लॉगिन प्रयासों को पुनर्निर्देशित करने का कोई अन्य तरीका नहीं पता है।

किसी भी तरह की सहायता का स्वागत किया जाएगा!

0
Tymaca 11 जून 2018, 20:13

1 उत्तर

सबसे बढ़िया उत्तर

अपने कोड को देखते हुए, sql कमांड में आपकी क्वेरी में पासवर्ड पैरामीटर @Password के रूप में परिभाषित होता है, जबकि इसे cmd पैरामीटर संग्रह में जोड़ते समय आपके पास @Password के बजाय @Wachtwoord होता है।

यहाँ अद्यतन कोड है:

 SqlCommand cmd = new SqlCommand("SELECT * FROM Users WHERE Username =@Username and Password=@Password", con);
                cmd.Parameters.AddWithValue("@Username", Login1.UserName);
                cmd.Parameters.AddWithValue("@Password", Login1.Password);

साथ ही, हमेशा Home.aspx पर रीडायरेक्ट करने के बजाय आप FormsAuthentication.GetRedirectUrl। इसलिए यदि आप बिना लॉग इन किए किसी पेज प्रोटेक्टेड.एएसपीएक्स को एक्सेस करने का प्रयास करते हैं तो यूजर को Login.aspx?ReturnUrl=protected.aspx पर रीडायरेक्ट कर दिया जाएगा और लॉग इन करने के बाद यूजर को प्रोटेक्टेड.एएसपीएक्स पेज पर रीडायरेक्ट कर दिया जाएगा।

  if (dt.Rows.Count > 0)
        {
            Response.Redirect(FormsAuthentication.GetRedirectUrl( Login1.UserName, false));
        }
0
Mohsin Mehmood 11 जून 2018, 22:41