基本上我正在编写自己的'RoleProvider'和'AuthorizeAttribute'版本。我有一个 Enum(作为一个位字段),列出了所有可能的角色:
namespace myProject.Global
{
[Flags]
enum Roles
{
Viewer = 1,
User = 2,
Admin = 4,
Superadmin = 8
}
}
我的 AuthorizeAttribute 与现有的类似。在我的逻辑中,我遍历每个“授权”角色并检查用户是否属于它。 _rolesSplit 是 AuthorizeAttribute 中为特定操作提供的角色数组。 httpContext.Session [3]是表示用户角色的整数。
foreach (string roleName in _rolesSplit)
{
if ((httpContext.Session["Roles"] & myProject.Global.Roles[roleName]) == myProject.Global.Roles[roleName]) return true;
}
return false;
这是我无法工作的部分:APICText.Global.Roles [6]。我是.NET 开发的新手,所以我不确定如何使这项工作。我基本上需要传递角色名称并获取相关值。我该怎么做呢?
1 回答
你需要的是Enum.Parse。
尝试这样的事......
或这个...