tes*_*der 3 c# asp.net asp.net-mvc web-config windows-authentication
我有网络配置:
<location allowOverride="true" path="Admin/Secure">
<system.web>
<authorization>
<allow users="SpecificUserName1" />
<allow users="SpecificUserName2" />
<deny users="*" />
</authorization>
</system.web>
</location>
Run Code Online (Sandbox Code Playgroud)
我需要在运行时获取所有用户(SpecificUserName1,SpecificUserName2).我怎么能做到这一点?
更新我需要在View中执行此操作
现在我使用默认方法:
@if (Request.IsAuthenticated)
{
//secure menu
}
Run Code Online (Sandbox Code Playgroud)
现在: 显示域中所有用户的菜单,但仅授予访问权限,仅授予web.config中存在的用户
需要: 隐藏菜单/允许访问域中的所有用户,但web.config中存在的用户除外
UPDATE
我找到了解决方案 http://forums.asp.net/t/1787320.aspx/1
UrlAuthorizationModule.CheckUrlAccessForPrincipal(Request.Url.AbsolutePath, HttpContext.Current.User, HttpContext.Current.Request.HttpMethod);
Run Code Online (Sandbox Code Playgroud)
首先,不要web.config用来控制ASP.NET MVC应用程序中的授权.
使用该[Authorize]属性.用它装饰相应的控制器/动作:
[Authorize(Users = "SpecificUserName1, SpecificUserName2")]
public ActionResult Secure()
{
...
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以将常量中的这些用户名外部化并重用该值.顺便说一下,根据您需要这些值的确切位置,可能还有其他方法可以检索它们.
| 归档时间: |
|
| 查看次数: |
2242 次 |
| 最近记录: |