【发布时间】:2009-08-24 19:47:16
【问题描述】:
基本上,我正在编写自己的“RoleProvider”和“AuthorizeAttribute”版本。我有一个包含所有可能角色列表的枚举(作为位字段):
namespace myProject.Global
{
[Flags]
enum Roles
{
Viewer = 1,
User = 2,
Admin = 4,
Superadmin = 8
}
}
我的 AuthorizeAttribute 的工作方式与现有的类似。在我的逻辑中,我遍历每个“授权”角色并检查用户是否属于它。 _rolesSplit 是 AuthorizeAttribute 中为特定操作提供的角色数组。 httpContext.Session["Roles"] 是一个表示用户角色的整数。
foreach (string roleName in _rolesSplit)
{
if ((httpContext.Session["Roles"] & myProject.Global.Roles[roleName]) == myProject.Global.Roles[roleName]) return true;
}
return false;
这是我无法工作的部分:APICText.Global.Roles[roleName]。我是 .NET 开发的新手,所以我不确定如何进行这项工作。我基本上需要传递一些角色名称并取回相关的值。我该怎么做?
【问题讨论】:
标签: asp.net asp.net-mvc enums