【发布时间】:2015-05-11 08:16:09
【问题描述】:
我正在使用 .NET Framework 4.5.1 和 C# 开发一个 ASP.NET MVC 5 应用程序。
我正在使用Windows authentication 来允许某些用户访问我的控制器。这是我的web.config 文件:
<system.web>
<compilation debug="true" targetFramework="4.5.1" />
<httpRuntime targetFramework="4.5.1" />
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
<roleManager enabled="true" defaultProvider="WindowsProvider">
<providers>
<clear />
<add name="WindowsProvider" type="System.Web.Security.WindowsTokenRoleProvider" />
</providers>
</roleManager>
</system.web>
这是我的Authorize 属性:
[Authorize(Roles = @"MyDomain\MyUploadRole")]
public class UploadController : Controller
{
// ...
}
我想将字符串 @"MyDomain\MyUploadRole" 添加到 web.config 但我不知道该怎么做。
我已经测试了这个SO answer,但它对我不起作用。我已将此部分添加到web.config 文件中:
<roles>
<add key="Role1" value="MyDomain\MyUploadRole" />
<add key="Role2" value="MyDomain\Another role" />
</roles>
然后,我在控制器上更改它:
[Authorize(Roles = @"Role1")]
public class UploadController : Controller
{
// ...
}
Internet Explorer 要求我提供凭据,但我得到了未经授权的响应。
如何在web.config 上设置角色名称?
【问题讨论】:
-
有什么类似的东西:
-
@DasDas 有些控制器需要一个角色,有些则不需要。
-
为什么其他答案对您不起作用?
-
我更新了我的问题,提供了更多细节。
-
您能否向我们展示自定义授权代码的内部工作原理,或者它与您链接到的 SO 答案完全相同?
标签: c# asp.net asp.net-mvc active-directory