ロールテーブルと権限(フォームごとのユーザー権限)テーブルを持つアプリケーションがあります。異なるロールには異なるアクセスレベルがあり、各ユーザーには各フォームへの特定のアクセス権限があります。FormsAuthenticationを使用して実装できますか?
ありがとうございました
ロールテーブルと権限(フォームごとのユーザー権限)テーブルを持つアプリケーションがあります。異なるロールには異なるアクセスレベルがあり、各ユーザーには各フォームへの特定のアクセス権限があります。FormsAuthenticationを使用して実装できますか?
ありがとうございました
この場合、カスタムフォーム認証プロバイダーを構築できるようです。
これが例です http://www.codeproject.com/KB/web-security/AspNetCustomAuth.aspx
リストまたは役割をに渡す必要があります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"))
{
...................
}