اذهب إلى المحتوى

السؤال

نشر

السلام عليكم،
كيف أمنع المستخدم من الدخول لصفحة تسجيل الدخول بعد الدخول؟

لدي صفحتين الأولى login.aspx
 

        Username: <asp:TextBox  ID="txtUser" runat="server" Placeholder="Please Enter Your name" />
        Password: <asp:TextBox ID="txtPwd" runat="server" Placeholder="Please Enter Your Password" TextMode="Password" />
        <br /> <br />
        <asp:Button Text="LOGIN" runat="server" ID="Login" OnClick="Login_Click" />

وهذا كود الــLogin:

if(txtUser.Text == string.Empty || txtPwd.Text == string.Empty)
            {
                Response.Write("You Have To Fill Out All Inputs");
            }
            else
            { 
                SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["myWebSite"].ConnectionString);
                conn.Open();
                SqlCommand cmd = new SqlCommand("SELECT Username, Password FROM login WHERE Username = '" + txtUser.Text + "'", conn);
                SqlDataReader dr = cmd.ExecuteReader();
                while (dr.Read())
                {
                    if (txtPwd.Text == dr["Password"].ToString())
                        Session["username"] = txtUser.Text;
                        Response.Redirect("welcome.aspx");
                }
                Response.Write("SORRY!!, Username or Password is Wrong!");


وعند الضغط على Login يذهب للصفحة الثانية welcome.aspx التي كود السي شارب فيها :
 

        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["username"] == null)
                Response.Redirect("login.aspx");
            else
                username.Text = Session["username"].ToString();
        }

        protected void Logout_Click(object sender, EventArgs e)
        {
            Session.RemoveAll();
            Response.Redirect("login.aspx");
        }

طبعاً لدي في صفحة welcome.aspx زر Logout لعمل تدمير ومسح للـSession
-------------------------------------------------------------------------------
الآن مشكلتي عندما أعمل Login عن طريق الـlogin.aspx أدخل لصفحة الـwelcome.aspx ، كل شيء يعمل بشكل جميل :D ولكن المشكلة عندما يضغط المستخدم على زر Back في المتصفح يستطيع الرجوع لصفحة الــlogin بكل سهولة! ولن يمنعه شيء!، أنا أريد عندما يتم تسجيل الدخول وتسجيل السيشن "Session" لا يستطيع المستخدم رؤية أو دخول صفحة login.aspx أبداً إلاّ أن يعمل logout أو تدمير للسيشن "Session" بشكل كامل.
أتمنى أن السؤال واضح، أتمنى الشرح، وشكراً لكم :)

Recommended Posts

  • 2
نشر

هناك حل بسيط. أضف الكود التالي إلى حدث Page_Load الخاص بصفحة تسجيل الدخول Login على الشكل التالي:

protected void Page_Load(object sender, EventArgs e)
{
    if (Session["username"] != null)
        Response.Redirect("welcome.aspx");
}

 

ستعمل الشيفرة السابقة ضمن الحدث Load للصفحة Login على التأكّد من وجود جلسة صالحة للعمل قبل تحميل صفحة تسجيل الدخول. فإن كانت هذه الجلسة موجودة (أي صالحة) سيتم تحويل المتصفّح فورًا إلى صفحة الترحيب welcome ولا تظهر صفحة تسجيل الدخول، وإلّا فسيكون المستخدم غير مسجّل للدخول، لذلك ستظهر له صفحة تسجيل الدخول كالمعتاد.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...