• ¡Welcome to Square Theme!
  • This news are in header template.
  • Please ignore this message.
مهمان عزیز خوش‌آمدید. ورود عضــویت


امتیاز موضوع:
  • 14 رای - 2.86 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
Title: مشکلاتي با تشخيص هويت
حالت خطی
#1
سلام.

مسئله اينه فرضاً يه کاربر با اسم کاربري a وارد ميشه بدون اينکه خروج رو بزنه يه نام کاربري ديگه رو در لوگين وارد ميکنه و مي تونه وارد بشه به من گفتن نبايد اين اتفاق بيفته.
در واقع من مي خوام اگه کاربر هنوز خارج نشده بود و خواست با يه نام کاربري ديگه لوگين کنه بهش پيغام بده که ابتدا خارج شويد و سپس با نام کاربري جديد لوگين کنيد.

ممنون ميشم راهنمايي کنيد چطور ميشه اين مشکل رو حل کرد؟
يه مسئله ديگه اينه که وقتي کاربر خروج رو زد و دکمه back براوزر رو مي زنه نمي دونم چرا وقتي بار اول بک مي زنه اون رو به عنوان کاربر ميهمان تشخيص مي ده ولي بار دوم با نام کاربريش بهش خوش آمد ميگه که اينم لطف کنيد بگيد چه کار کنم تا اين اتفاق نيفته؟
کدهاي دکمه لوگين
کد:
if (GetMemberAuthenticate(txt_uname.Text, FormsAuthentication.HashPasswordForStoringInConfigFile(txt_pass.Text, "MD5")))
        {
            string role = GetMemberRoleByID(txt_uname.Text);
            DateTime expiration;
            if (chk_rememberme.Checked)
            {
                expiration = DateTime.Now.AddMonths(1);
            }
            else
            {
                expiration = DateTime.Now.AddMinutes(30);
            }
            FormsAuthenticationTicket AuthTicket = new FormsAuthenticationTicket(1, txt_uname.Text, DateTime.Now, expiration, false, role);
            string encryptedTicket = FormsAuthentication.Encrypt(AuthTicket);
            HttpCookie AuthCookie = new HttpCookie(FormsAuthentication.FormsCookieName, encryptedTicket);
            Response.Cookies.Add(AuthCookie);
            string[] temp = role.Split(',');
            for (int i = 0; i < temp.Length; i++)
            {
                if (temp[i]=="Admin")
                {
                    Response.Redirect("AdminPage.aspx");
                }  
            }

            Response.Redirect(FormsAuthentication.GetRedirectUrl(txt_uname.Text, chk_rememberme.Checked));
        }
        else
        {
            lbl_login.Visible = true;
        }
کدهايي که در global.asax نوشتم
کد:
HttpCookie authCookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName.ToString()];
        if (authCookie != null)
        {
            FormsAuthenticationTicket MyTicket;
            MyTicket = FormsAuthentication.Decrypt(authCookie.Value);
            FormsIdentity MyIdentity = new FormsIdentity(MyTicket);
            GenericPrincipal MyPrincipal = new GenericPrincipal(MyIdentity, MyTicket.UserData.Split(new char[] { ',' }));
            Context.User = MyPrincipal;
        }
و کدي که در web.config نوشتم و به اين مسئله مربوط ميشه
کد:
<authentication mode="Forms">
            <forms loginUrl="Default.aspx" defaultUrl="~/"></forms>
        </authentication>
ممنون.
 
پاسخ
  


پیام‌های این موضوع
مشکلاتي با تشخيص هويت - توسط aspdotnet - 11-22-2012، 09:24 AM
RE: مشکلاتي با تشخيص هويت - توسط aspdotnet - 11-22-2012، 12:00 PM
RE: مشکلاتي با تشخيص هويت - توسط aspdotnet - 11-22-2012، 01:11 PM
RE: مشکلاتي با تشخيص هويت - توسط aspdotnet - 11-23-2012، 12:39 PM
RE: مشکلاتي با تشخيص هويت - توسط aspdotnet - 11-25-2012، 09:53 AM

پرش به انجمن:


Browsing: 2 مهمان