من برنامه ای دارم که ۵نقش متفاوت داره هر نقش باید به پوشه ای برود که سطح دسترسی آن را تنظیم کردم
اما بعد از لاگین شدن فقظ به یه صفحه میره میشه راهنماییم کنید ممنون میشم
Printable View
من برنامه ای دارم که ۵نقش متفاوت داره هر نقش باید به پوشه ای برود که سطح دسترسی آن را تنظیم کردم
اما بعد از لاگین شدن فقظ به یه صفحه میره میشه راهنماییم کنید ممنون میشم
شما می بایست خودتون تو کد لاگین چک کنید که اون کاربری که با موفقیت لاگین شد رو با توجه به گروه یا رل اون، به صفحه پیشفرضش redirect کنه.
من توی همه ی eventهای لاگین هم این دستور و واسه همه نقشام نوشتم جواب نمیدهنقل قول:
if(User.InIsRoles("admin"))
{
respone.redirect("a.aspx");
}
اگر شما دسترسی گروهها رو بر اساس As.Net Configuration ست کرده باشید یعنی تویه هر پوشه مخصوص گروهتون اون فایل Web.Config ساخته شده و دسترسیها ست شده باشه. برای مثال صفحه لاگین من در هیچ پوشه ای که دسترسی برای اون ست نشده قرار داره و می خوام کاربری با گروه ادمین رو به پوشه Admin بعد از کنترل هدایت کنم به شکل زیر:
عمل میکنمکد:Response.Redirect("~/Admin/Default.aspx");
نقل قول:
من همه این کارا رو انجام دادم ولی نشده باید توی کد.م ریداد لاگین بنویسم
کد شما می بایست به شکل زیر و در رویداد Authenticate کنترل Login قرار داشته باشد.
البته تنظیمات مجوز دسترسی به صفحات فراموش نشود.کد:protected void LoginUser_Authenticate(object sender, AuthenticateEventArgs e)
{
string userName = LoginUser.UserName;
string pass = LoginUser.Password;
bool createPersistentCookie = LoginUser.RememberMeSet;
if (Membership.ValidateUser(userName, pass))
{
e.Authenticated = true;
// اطلاعات کاربر که می بایست در بلیط دسترسی اضافه شود
string customInfo = String.Format("{0}|{1}", userName, pass);
var ticket = new FormsAuthenticationTicket(
4,
LoginUser.UserName,
DateTime.Now,
DateTime.Now.AddMinutes(30), // سی دقیقه مدت زمان اعتبار بلیط دسترسی
createPersistentCookie,
customInfo);
// رمزی کردن بلیط دسترسی برای جلوگیری از نمایش اطلاعات کاربر
string encTicket = FormsAuthentication.Encrypt(ticket);
// ذخیره بلیط دسترسی در کوکی
HttpCookie cookie = FormsAuthentication.GetAuthCookie(
FormsAuthentication.FormsCookieName,
createPersistentCookie);
cookie.Value = encTicket;
// اضافه کردن کوکی به ریسپانس به منظور دسترسی به صفحات
HttpContext.Current.Response.Cookies.Add(cookie);
// ریدایرکت کاربر به صفحه پیشفرض با توجه به گروه آن
if (Roles.IsUserInRole(userName, "Programmers"))
{
Response.Redirect("~/Programmers/Defaul.aspx");
}
else if (Roles.IsUserInRole(userName, "Administrators"))
{
Response.Redirect("~/Administrators/Defaul.aspx");
}
else
{
Response.Redirect("~/Default.aspx");
}
}
else
e.Authenticated = false;
}