2015-07-11 4 views
1

В последнем приложении ASP.NET WebForms мы больше не являемся пользователем RoleManager и т. Д. (Насколько я могу судить), так как мы разрешаем доступ к веб-странице для определенной роли ?ASP.NET WebForms - Как разрешить доступ к странице

В MVC я бы использовал атрибут Authorize, но это не существует в WebForms, поэтому я в недоумении - любые идеи?

+0

Возможный дубликат [находится там authorizeattribute эквивалентно только стандартные веб-формы (не MVC) для .net] (http://stackoverflow.com/ вопросы/4217576/вне-там-ан-authorizeattribute-эквивалент к только-стандартного веб-форм-не-MVC-е) –

ответ

1

попробуйте этот код при входе в систему, чтобы передать роль FormsAuthenticationTicket

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, UserName.Text, DateTime.Now, DateTime.Now.AddMinutes(2880), false, role, FormsAuthentication.FormsCookiePath); 
      string hash = FormsAuthentication.Encrypt(ticket); 
      HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash); 

      if (ticket.IsPersistent) 
      { 
       cookie.Expires = ticket.Expiration; 
      } 
      Response.Cookies.Add(cookie); 
      Response.Redirect(FormsAuthentication.GetRedirectUrl(UserName.Text, false)); 

на конкретном веб-форму на Page_Load события извлечения роль,

protected void Page_Load(object sender, EventArgs e) 
    { 

      FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity; 
      FormsAuthenticationTicket ticket = id.Ticket; 
      string userData = ticket.UserData; 
      string[] temp = userData.Split(','); 
      role=temp[0]; 
     if (role!="Owner") 
     { 
      Response.Write("............"); 
     } 
    } 

если вы хотите авторизацию на уровне папок, то вместо проверки rol е на веб-форму указать роль в файле web.config этой папки

<authorization> 
    <allow roles="Owner"/> 
    <deny users="*"/> 
</authorization> 
1

ознакомьтесь с использованием файла /e web.config и элемента авторизации. вы можете создать файл web.config в любом каталоге для этой цели (т. е. на вашем сайте может быть несколько файлов web.config).

одна ссылка (смотрите в другие ссылки, а): https://msdn.microsoft.com/en-us/library/8d82143t%28v=vs.85%29.aspx

Смежные вопросы