ahmad156
جمعه 13 بهمن 1391, 14:12 عصر
سلام دوستان
وقتی مراحل زیر انجام میشه و مراحل Login دیگه نیاز نیست IsInRole مقدار false رو بر میگردونه در صورتی که مقدار UserData برابر role هست
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
HttpCookie cookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName];
if (cookie != null)
{
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value);
FormsIdentity identity = new FormsIdentity(ticket);
GenericPrincipal principal =new GenericPrincipal(identity, new string[] { ticket.UserData }); //UserData="admin"
Context.User = principal;
}
}
User.IsInRole("admin") //false
در صورتی UserData مقدار admin داره و بقیه اطلاعات کاربر هم موجود هست
ولی وقتی Login انجام میشه و کد زیر اجرا میشه اینجور نیست
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, user.name + " " + user.family, DateTime.Now, DateTime.Now.AddHours(60), isPersist, "admin");
وقتی مراحل زیر انجام میشه و مراحل Login دیگه نیاز نیست IsInRole مقدار false رو بر میگردونه در صورتی که مقدار UserData برابر role هست
protected void Application_AuthenticateRequest(object sender, EventArgs e)
{
HttpCookie cookie = Context.Request.Cookies[FormsAuthentication.FormsCookieName];
if (cookie != null)
{
FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(cookie.Value);
FormsIdentity identity = new FormsIdentity(ticket);
GenericPrincipal principal =new GenericPrincipal(identity, new string[] { ticket.UserData }); //UserData="admin"
Context.User = principal;
}
}
User.IsInRole("admin") //false
در صورتی UserData مقدار admin داره و بقیه اطلاعات کاربر هم موجود هست
ولی وقتی Login انجام میشه و کد زیر اجرا میشه اینجور نیست
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, user.name + " " + user.family, DateTime.Now, DateTime.Now.AddHours(60), isPersist, "admin");