بررسی علت های login نشدن

یکشنبه 5 مرداد 1393

علت های login نشدن به دلایل مختلف روی می دهد در اینجا به بررسی علت ها می پردازیم و در آخر راه حلی ارایه میدهیم

بررسی علت های login  نشدن

در این مقاله علت login  نشدن را بر این اساس که می تواند به دلیل نداشتن کاربر مورد تایید یا قفل شدن باشد را بررسی می کنیم.

Asp.net membership یک کتابخانه قدرتمند برای ساخت login و مکانیزم نقش ها برای وب سایت های asp.net است،اما متد شناسایی کاربر(validator user) در سه مورد false  برمی گرداند و یا اجازه login شدن را نمی دهد:

1- نام کاربری و  یا رمز عبور اشتباه است.

2- حساب کاربری مورد تایید و یا فعال واقع نشده است.

3- حساب کاربری قفل یا معلق و یا غیر فعال شده است.

بنابراین پیدا کردن علت مشکل است و در بسیاری از موارد ما مجبوریم پیام های متفاوتی را بر اساس شرایط متفاوت به نمایش بگذاریم.از این رو من موفق به انجام راه حل زیر شدم:

C#
bool isValid = Membership.ValidateUser(txtUserName.Text, txtPassword.Text);
if (!isValid)
{
    MembershipUser user = Membership.GetUser(txtUserName.Text);
    if (user != null)
    {
        //User exists
        if (!user.IsApproved)
        {
            //Account Unapproved
            lblMessage.Text = "Your account is not approved.";
        }
        else if (user.IsLockedOut)
        {
            //Account Locked
            lblMessage.Text = "Your account is locked.";
        }
        else
        {
            //Invalid username or password
            lblMessage.Text = "Invalid username or password.";
        }
    }
    else
    {
        //Invalid username or password
        lblMessage.Text = "Invalid username or password.";
    }
}
 
VB.Net
Dim isValid As Boolean = Membership.ValidateUser(txtUserName.Text, txtPassword.Text)
If Not isValid Then
     Dim user As MembershipUser = Membership.GetUser(txtUserName.Text)
     If user IsNot Nothing Then
         'User exists
         If Not user.IsApproved Then
             'Account Unapproved
             lblMessage.Text = "Your account is not approved."
         ElseIf user.IsLockedOut Then
             'Account Locked
             lblMessage.Text = "Your account is locked."
         Else
             'Invalid username or password
             lblMessage.Text = "Invalid username or password."
         End If
     Else
         'Invalid username or password
         lblMessage.Text = "Invalid username or password."
     End If
End If

بنابراین در راه حل بالا شما به راحتی می توانید به طور دقیق علت login  نشدن در کتابخانه membership،asp.net را شناسایی کنید.

 

جعفری

نویسنده 22 مقاله در برنامه نویسان

کاربرانی که از نویسنده این مقاله تشکر کرده اند

در صورتی که در رابطه با این مقاله سوالی دارید، در تاپیک های انجمن مطرح کنید