我正在尝试在ASP .NET MVC3 Web应用程序中针对Active Directory授权用户。我不仅要强制用户登录并针对目录中的用户进行授权,而且我还希望针对他们所在的组授权用户,如下所示:
[Authorize(Roles = @"DOMAIN\Group")]
我看到的每个示例都用于Windows身份验证。我正在使用Forms身份验证。我的Web.config的重要部分如下:
<add name="ADConnectionString" connectionString="LDAP://blahblahblah" />
<authentication mode="Forms">
<forms name="AD" loginUrl="~/Account/LogOn" />
</authentication>
<membership defaultProvider="ADMembershipProvider">
<providers>
<clear />
<add name="ADMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider"
connectionStringName="ADConnectionString"
attributeMapUsername="sAMAccountName" />
</providers>
</membership>
<roleManager enabled="true" defaultProvider="AspNetWindowsTokenRoleProvider">
<providers>
<clear />
<add name="AspNetWindowsTokenRoleProvider"
type="System.Web.Security.WindowsTokenRoleProvider"
/>
</providers>
</roleManager>
我目前收到的错误是
仅当用户名参数与用户匹配时,才支持方法 当前Windows标识中的名称。
是否可以使用Forms身份验证执行此操作以及如何配置我的应用程序?
答案 0 :(得分:1)
根据我的研究,似乎答案是否定的,你不能使用WindowsTokenRoleProvider的Forms身份验证。见这里:
相反,我已经完成了我在ASP .NET MVC 2中所做的工作,即实现我自己的AuthorizeAttribute
:
ASP .NET MVC Forms authorization with Active Directory groups