1
我很努力地完全理解在MVC4應用程序中實現Windows身份驗證和基於角色的授權方案的正確方法。當用戶訪問(內部網)的網站目前我有以下方法檢查用戶名反對對數據庫表是否需要角色提供者實現?
List<string> permissionList =
PermissionBo.GetUserPermissionsList(PermissionBo.ParseUserName(User.Identity.Name));
Permissions permissions = new Permissions(permissionList);
然後,如果狀態增加了一個角色給用戶對象的下列內容:
if (permissions.IsAdmin)
{
if(!Roles.RoleExists("UtilitiesToolAdmin"))
{
Roles.CreateRole("UtilitiesToolAdmin");
}
if(!Roles.IsUserInRole(User.Identity.Name, "UtilitiesToolAdmin"))
{
Roles.AddUsersToRole(new string[] { User.Identity.Name }, "UtilitiesToolAdmin");
}
}
我覺得這可能是一個不正確的方式去實現這一點,但我不知道我錯了。這足以開始使用授權屬性,如下所示:
[Authorize(Roles="UtilitiesToolAdmin")]
public static void Foo()
{
return "Bar"
}
如果不是我錯過了什麼?
使用授權屬性是你應該做的。唯一不使用授權的時間是,如果您必須以編程方式確定訪問權限。 – 2014-10-08 20:39:22
我會嘗試清除我的問題,但我知道我想使用Authorize屬性,但是我不清楚如果它是「正確的」以編程方式向用戶添加角色,就像我所做的那樣 – Pseudonym 2014-10-08 20:40:23