1

ロールテーブルと権限(フォームごとのユーザー権限)テーブルを持つアプリケーションがあります。異なるロールには異なるアクセスレベルがあり、各ユーザーには各フォームへの特定のアクセス権限があります。FormsAuthenticationを使用して実装できますか?

ありがとうございました

4

2 に答える 2

1

この場合、カスタムフォーム認証プロバイダーを構築できるようです。

これが例です http://www.codeproject.com/KB/web-security/AspNetCustomAuth.aspx

于 2011-07-31T08:19:59.690 に答える
1

リストまたは役割をに渡す必要があります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"))
 {
  ...................
 }  
于 2011-07-31T08:31:39.080 に答える