在我的ASP.net项目中,我使用Authorization仅允许作为给定组成员的用户。为了使这个网站的未来所有者更容易,我正在调整角色。我尝试执行以下操作:
SettingsController set = new SettingsController();
private string Roles()
{
return set.settingsGroup;
}
[Authorize(Roles = Roles())]
....
现在set.settingsGroup
返回一个从XML文件解析的字符串。
但是当我尝试在授权上设置它时我得到了错误
非静态字段,方法或者需要对象引用 属性
我不完全理解这个错误,所以我要求你们和男孩们帮忙。
所以不要害羞。
的 的 __ _ __ _ __ _ __ _ __ _ _ 更新的 _ __ _ __ < EM> _ __ _ __ _ __ _ __
所以在一些帮助下,我现在明白我必须做什么。 作为一个解决方案,我将de function role设为static,并创建了一个新的SettingsController实例。
private static string Roles()
{
SettingsController set = new SettingsController();
set.parseXML();
return set.settingsGroup;
}
但现在当我在授权中调用Roles()时会出现一个更长的新错误:
属性参数必须是常量表达式,typeof表达式 或属性参数类型
的数组创建表达式
因此,如果我尝试阅读此错误,似乎是使用Roles()函数给出属性或参数。这不是正确的类型。但我不提供任何参数吗?
答案 0 :(得分:2)
您正在从静态方法调用非静态属性。您需要将属性设置为静态,或者在Roles函数
中创建set的实例