【发布时间】:2014-02-28 08:15:34
【问题描述】:
在我的 ASP.net 项目中,我使用Authorization 只允许属于给定组的用户。为了让网站的未来所有者更容易做到这一点,我正在调整角色。我尝试执行以下操作:
SettingsController set = new SettingsController();
private string Roles()
{
return set.settingsGroup;
}
[Authorize(Roles = Roles())]
....
现在set.settingsGroup 返回一个从 XML 文件解析的字符串。
但是当我尝试在授权上设置它时,我得到了错误
非静态字段、方法或对象需要对象引用 属性
我不完全理解错误,所以我向你们寻求帮助。
所以不要害羞。
________________更新_______ ___________
所以在一些帮助下,我现在明白了我必须做什么。 作为解决方案,我将 de function 角色设为静态,并创建了一个新的 SettingsController 实例。
private static string Roles()
{
SettingsController set = new SettingsController();
set.parseXML();
return set.settingsGroup;
}
但是现在当我在 Authorize 中调用 Roles() 时得到一个更长的新错误:
属性参数必须是常量表达式,typeof 表达式 或属性参数类型的数组创建表达式
因此,如果我尝试阅读此错误,似乎是使用 Roles() 函数提供属性或参数。那不是正确的类型。但是我没有给任何参数吗?
【问题讨论】:
-
将 Roles() 函数设为静态。私有静态字符串 Roles() {}
标签: c# asp.net authorization