【问题标题】:Can I use Forms Authentication to authorise against AD groups?我可以使用表单身份验证对 AD 组进行授权吗?
【发布时间】:2011-09-15 07:43:13
【问题描述】:

我正在尝试在我的 ASP .NET MVC3 Web 应用程序中针对 Active Directory 授权用户。我不仅想强制用户登录并对目录中的用户进行授权,而且我还想根据他们所在的组授权用户,如下所示:

[Authorize(Roles = @"DOMAIN\Group")]

我看到的每个示例都用于 Windows 身份验证。我正在使用表单身份验证。我的 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 标识中的名称。

是否可以使用表单身份验证来执行此操作?我应该如何配置我的应用程序?

【问题讨论】:

标签: .net asp.net-mvc asp.net-mvc-3 active-directory web-config


【解决方案1】:

根据我的研究,答案似乎是否定的,您不能将 Forms 身份验证与 WindowsTokenRoleProvider 一起使用。见这里:

How can I provide an ASP.NET Forms Authentication UX while using Active Directory Role and Authentication providers?

相反,我已经完成了我在 ASP .NET MVC 2 中所做的事情,即实现我自己的 AuthorizeAttribute

ASP .NET MVC Forms authorization with Active Directory groups

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 1970-01-01
    • 2014-03-06
    • 1970-01-01
    • 2021-09-16
    • 2012-06-29
    相关资源
    最近更新 更多