Van*_*nel 5 c# asp.net asp.net-mvc active-directory
我正在使用.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>
Run Code Online (Sandbox Code Playgroud)
这是我的Authorize属性:
[Authorize(Roles = @"MyDomain\MyUploadRole")]
public class UploadController : Controller
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
我想添加字符串@"MyDomain\MyUploadRole",web.config但我不知道该怎么做.
我测试了这个SO答案,但它对我不起作用.我已将此部分添加到web.config文件中:
<roles>
<add key="Role1" value="MyDomain\MyUploadRole" />
<add key="Role2" value="MyDomain\Another role" />
</roles>
Run Code Online (Sandbox Code Playgroud)
然后,我在控制器上改变它:
[Authorize(Roles = @"Role1")]
public class UploadController : Controller
{
// ...
}
Run Code Online (Sandbox Code Playgroud)
并且Internet Explorer要求我的凭据,但我得到了未经授权的响应.
如何设置角色的名称web.config?
小智 0
也许这对你有用:
<configuration>
<system.web>
<authentication mode="Windows"/>
<authorization>
<allow roles="MyDomain\MyUploadRole"/>
<deny users="?"/>
</authorization>
<identity impersonate="true"/>
</system.web>
Run Code Online (Sandbox Code Playgroud)
在您的代码中,您可以检查用户是否具有如下角色:
HttpContext.Current.User.IsInRole("MyDomain\MyUploadRole")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1067 次 |
| 最近记录: |