Wal*_*orn 11 c# asp.net authentication asp.net-mvc asp.net-mvc-5
我有一个小项目,使用Visual Studio 2013,.NET 4.5,MVC 5和EF 6构建.我使用Windows身份验证创建它,但现在我需要检查Active Directory组中的成员身份以允许或拒绝访问.
我已经走了许多非常深的兔子洞,试图找出如何做到这一点.起初我假设我需要更改项目以使用"内部部署"身份验证.但是,我发现:
因此,假设#3是真的,我尝试阅读关于此的大量帖子,但它们似乎分为两个基本组:
假设#1是要走的路,这是我最近的尝试.
在我的控制器中,我有:
[Authorize(Roles=@"SomeDomain\\SomeGroup")]
public class SomeController : Controller
Run Code Online (Sandbox Code Playgroud)
在我的Web.config文件中,我有:
<system.web>
<authentication mode="Windows" />
<authorization>
<deny users="?" />
</authorization>
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
<providers>
<clear/>
<add name="AspNetWindowsTokenRoleProvider"
type="System.Web.Security.WindowsTokenRoleProvider"
applicationName="/" />
</providers>
</roleManager>
</system.web>
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name="BehaviorConfiguration">
<serviceAuthorization
principalPermissionMode="UseAspNetRoles"
roleProviderName="AspNetWindowsTokenRoleProvider" />
<serviceMetadata />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
Run Code Online (Sandbox Code Playgroud)
当我尝试访问该页面时,我被提示登录.输入我的登录ID和密码后,我继续收到登录提示.我不被允许进入该页面.
我在任何地方都没有告诉我的应用程序Active Directory服务器的位置,但我得到的印象是Windows已经知道(因为,当我登录到Windows时,它访问Active Directory服务器来验证我).
我错过了什么吗?或者我错误地认为可以在不编写自定义代码的情况下完成此操作?
警告:我对来自Java世界的.NET,MVC等相当新,所以请使用小词.:-)
我发现了这个问题.我上面的内容是正确的,除了我在域名和角色名称之间有两个反斜杠,而不是一个.修复只是将其更改为:
[Authorize(Roles=@"SomeDomain\SomeGroup")]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12861 次 |
| 最近记录: |