PDA

View Full Version : مشکل با login



amir_T_2008
دوشنبه 24 آذر 1393, 09:40 صبح
سلام


من از خود login موجود در Asp دارم استفاده میکنم و میخوام اگر کاربر معمولی بود به یک صفحه و اگر مدیر بود به صفحه دیگه انتقال پیدا کنه

من از کد زیر دارم استفاده میکنم اما مشکلم اینه از هر 10 باری که یوزر و پسورد وارد میکنی 2 دفعه درست عمل میکنه

کد :




protected void Login1_LoggedIn1(object sender, EventArgs e)
{

if (HttpContext.Current.User.IsInRole("admin"))
{
Response.Redirect("admin/Default3.aspx", true);
}
else if (HttpContext.Current.User.IsInRole("User"))
{
Response.Redirect("user/Default2.aspx", true);
}

}



لطفا راهنمایی کنید درضمن اگر راه حل دیگه ای سراغ دارید ممنون میشم معرفی کنید

LostOfMind
دوشنبه 24 آذر 1393, 12:37 عصر
از این کد استفاده کنید(بدون استفاده از کنترل لاگین پیش فرض asp - فرم رو خودتون درست کنید)
try
{
if (Membership.ValidateUser(txtUserName.Text, txtPassword.Text))
{
FormsAuthentication.RedirectFromLoginPage(txtUserN ame.Text, CheckBox_PersistentCookie.Checked);
if (HttpContext.Current.User.IsInRole("admin"))
{
Response.Redirect("admin/Default3.aspx", true);
}
else if (HttpContext.Current.User.IsInRole("User"))
{
Response.Redirect("user/Default2.aspx", true);
}
}
else
{
string Msg = "تلاش شما برای ورود به سایت نا موفق بود ، لطفاً مجدداًاقدام فرمایید.";
ScriptManager.RegisterStartupScript(Page, typeof(Page), "Alert", "<script>alert('" + Msg + "');</script>", false);
}
}
catch (System.Exception ex)
{
string Msg = ex.Message.ToString();
ScriptManager.RegisterStartupScript(Page, typeof(Page), "Alert", "<script>alert('" + Msg + "');</script>", false);
}

ahmad156
دوشنبه 24 آذر 1393, 12:43 عصر
تعیین اعتبار با استفاده از FormsAuthentication (http://barnamenevis.org/showthread.php?415958-%D8%AA%D8%B9%DB%8C%DB%8C%D9%86-%D8%A7%D8%B9%D8%AA%D8%A8%D8%A7%D8%B1-%D8%A8%D8%A7-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-FormsAuthentication&highlight=formsauthentication)

amir_T_2008
دوشنبه 24 آذر 1393, 13:30 عصر
--------------

amir_T_2008
دوشنبه 24 آذر 1393, 13:38 عصر
از این کد استفاده کنید(بدون استفاده از کنترل لاگین پیش فرض asp - فرم رو خودتون درست کنید)
try
{
if (Membership.ValidateUser(txtUserName.Text, txtPassword.Text))
{
FormsAuthentication.RedirectFromLoginPage(txtUserN ame.Text, CheckBox_PersistentCookie.Checked);
if (HttpContext.Current.User.IsInRole("admin"))
{
Response.Redirect("admin/Default3.aspx", true);
}
else if (HttpContext.Current.User.IsInRole("User"))
{
Response.Redirect("user/Default2.aspx", true);
}
}
else
{
string Msg = "تلاش شما برای ورود به سایت نا موفق بود ، لطفاً مجدداًاقدام فرمایید.";
ScriptManager.RegisterStartupScript(Page, typeof(Page), "Alert", "<script>alert('" + Msg + "');</script>", false);
}
}
catch (System.Exception ex)
{
string Msg = ex.Message.ToString();
ScriptManager.RegisterStartupScript(Page, typeof(Page), "Alert", "<script>alert('" + Msg + "');</script>", false);
}

ممنون دوست عزیز.اما مشکل اینه چه با رول Admin چه با رول user وارد میشم مستقیم نمیره به صفحاتی که تو کد نوشتیم و وارد صفحه default.aspx میشه

amir_T_2008
دوشنبه 24 آذر 1393, 13:58 عصر
کد قرار میدم ممنون میشم ببینید مشکل از کجاست

دانلود (http://www.rodfile.com/6198moonhte8)

amir_T_2008
چهارشنبه 26 آذر 1393, 22:25 عصر
دوستان کسی نمیتونه کمک کنه ؟؟؟؟؟؟؟؟؟؟؟

LostOfMind
پنج شنبه 27 آذر 1393, 17:51 عصر
-----------------

amir_T_2008
یک شنبه 30 آذر 1393, 23:42 عصر
دوستان من هنوز مشکلم سرجاشه اگر کسی میتونه لطفا کمک کنه

LostOfMind
یک شنبه 21 دی 1393, 10:10 صبح
کد ایجاد کاربر
/// <summary>
/// بررسی نام کاربری
/// </summary>
/// <param name="UserName"></param>
/// <returns></returns>
public static bool CheckUserName(string UserName)
{
bool res = false;
MembershipUserCollection membersCollection = Membership.GetAllUsers();
MembershipUser[] members = new MembershipUser[membersCollection.Count];
membersCollection.CopyTo(members, 0);
for (int i = 0; i < members.Length; i++)
{
if (UserName == members[i].UserName)
res = true;
}
return res;
}

--------------------------------

/// <summary>
/// بررسی رمز عبور
/// </summary>
/// <param name="Pass"></param>
/// <returns></returns>
public static bool CheckPassword(string Pass)
{
bool res = false;
if (Pass.Length >= 5)
res = true;
else
res = false;
return res;
}

---------------------------------

protected void AddUser(string UserName, string password, string email)
{
try
{
bool userNameExists = false;
bool passwordLength = false;
//بررسی نام کاربری
userNameExists = CheckUserName(UserName);
//بررسی صحت کلمه عبور
passwordLength = CheckPassword(password);
//---------------------------------------------
if ((!userNameExists) && (passwordLength))
{
MembershipCreateStatus mcu = new MembershipCreateStatus();
MembershipUser newUser = Membership.CreateUser(UserName, password, email, txtQuestion.Text, txtAnswere.Text, true, out mcu);
if (newUser == null)
{
string Msg = Account.GetErrorMessageCreateUser(mcu);
ScriptManager.RegisterStartupScript(Page, typeof(Page), "Alert", "<script>alert('" + Msg + "');</script>", false);

}
else
{
//تخصیص نقش به کاربر
Roles.AddUserToRole(UserName, "User");
string Msg = "ثبت نام شما با موفقیت انجام شد ";
ScriptManager.RegisterStartupScript(Page, typeof(Page), "Alert", "<script>alert('" + Msg + "');</script>", false);
}
}
else
{
if (userNameExists)
{
string Msg = "نام کاربری قبلا در سایت موجود می باشد لطفا نام کاربری خود را تغییر دهید";
ScriptManager.RegisterStartupScript(Page, typeof(Page), "Alert", "<script>alert('" + Msg + "');</script>", false);
}
if (!passwordLength)
{
string Msg = "تعداد کاراکتر های مجاز برای کلمه عبور حداقل 5 رقم می باشد";
ScriptManager.RegisterStartupScript(Page, typeof(Page), "Alert", "<script>alert('" + Msg + "');</script>", false);
}
}

}
catch (System.Exception ex)
{
string Msg = ex.Message.ToString();
ScriptManager.RegisterStartupScript(Page, typeof(Page), "Alert", "<script>alert('" + Msg + "');</script>", false);
}
}

kurdistan132
پنج شنبه 26 آذر 1394, 20:58 عصر
دوستام من هم دقیقا همین مشکل رو دارم.لطفا راهنمایی کنید.

amir_T_2008
پنج شنبه 26 آذر 1394, 23:50 عصر
دوستام من هم دقیقا همین مشکل رو دارم.لطفا راهنمایی کنید.

دوست عزیز من خودم از یک راه حل دیگه استفاده کردم اونم اینکه یک لاگین زیبا با قابلیت مختلف استفاده کردم و در قسمت باتن کد زیر قرار دادم و این کار حسنش این بود که از قالب محدود خود لاگین دیگه استفاده نکردم و به راه حل هم رسیدم

موفق باشید




if (Membership.ValidateUser(txtUserName.Text, txtPassword.Text))
{
FormsAuthentication.RedirectFromLoginPage(txtUserN ame.Text, CheckBox_PersistentCookie.Checked);
if (Roles.IsUserInRole(txtUserName.Text, "Admin"))
{
Response.Redirect("~/Admin/Management.aspx");

}
//-- check if login user in User role
else if (Roles.IsUserInRole(txtUserName.Text, "vip") || Roles.IsUserInRole(txtUserName.Text, "user"))
{
Response.Redirect("~/default.aspx");
}
}
else
{
Label1.Text = ".نام کاربری یا کلمه عبور شما اشتباه می باشد ، لطفاً مجدداًاقدام فرمایید";

string Msg = "تلاش شما برای ورود به سایت نا موفق بود ، لطفاً مجدداًاقدام فرمایید.";
ScriptManager.RegisterStartupScript(Page, typeof(Page), "Alert", "<script>alert('" + Msg + "');</script>", false);
}