FormsAuthentication с динамическими ролями - PullRequest
1 голос
/ 31 июля 2011

У меня есть приложение с таблицей ролей и таблицей разрешений (пользовательских разрешений на форму). Разные роли имеют разные уровни доступа, и у каждого пользователя есть определенные права доступа к каждой форме.Могу ли я реализовать это с помощью FormsAuthentication?

спасибо

Ответы [ 2 ]

1 голос
/ 31 июля 2011

Вы должны передать список или роли FormsAuthenticationTicket

Вот полный код, я также добавил комментарии.

protected void lbtnSignIn_Click(object sender, EventArgs e)
{
 .......Login credential checking code......
 .......If the use verified, then add the roles to FormsAuthenticationTicket 
 .......I am assuming in the below code, you are getting list of roles from DB in DataTable
 String roles = String.Empty;
 if (dtblUsersRoles.Rows.Count > 0)
    {
     for (int count = 0; count < dtblUsersRoles.Rows.Count; count++)
     {
      //build list of roles in comma seperate
      roles = roles + "," + dtblUsersRoles.Rows[count]["RoleName"].ToString();
     }
    }

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, txtUserID.Text, 
DateTime.Now, DateTime.Now.AddMinutes(30), false, roles.Substring(1, roles.Length - 1), FormsAuthentication.FormsCookiePath);
string hashCookies = FormsAuthentication.Encrypt(ticket);
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hashCookies);
Response.Cookies.Add(cookie);
}

тогда вы можете проверить пользователя, не лежит ли он в определенной роли

 if (HttpContext.Current.User.IsInRole("Super Admin"))
 {
  ...................
 }  
1 голос
/ 31 июля 2011

Похоже, что в этом случае вы можете создать провайдер аутентификации пользовательских форм.

Вот пример http://www.codeproject.com/KB/web-security/AspNetCustomAuth.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...