我可以使用表单身份验证对 AD 组进行授权吗?

发布于 2024-12-05 03:09:51 字数 1247 浏览 2 评论 0原文

我正在尝试在 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 标识中的名称。

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

I am attempting to authorise users against Active Directory in my ASP .NET MVC3 web application. Not only do I want force the user to login and authorise that against the users in the directory, but I also want to authorise users against the groups they are in, along the lines of this:

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

Every example I'm seeing does it for Windows authentication. I am using Forms authentication. The important parts of my Web.config are as follows:

<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>

I currently get an error that says

Method is only supported if the user name parameter matches the user
name in the current Windows Identity.

Is it possible to do this using Forms authentication and how should I configure my app?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我早已燃尽 2024-12-12 03:09:51

根据我的研究,答案似乎是否定的,您不能将表单身份验证与 WindowsTokenRoleProvider 一起使用。请参阅此处:

如何在使用 Active Directory 角色和身份验证提供程序时提供 ASP.NET 表单身份验证 UX?

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

使用 Active Directory 组进行 ASP .NET MVC Forms 授权

From my research, it seems that the answer is no, you can't use Forms authentication with a WindowsTokenRoleProvider. See here:

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

Instead I have done what I did in ASP .NET MVC 2 which is to implement my own AuthorizeAttribute:

ASP .NET MVC Forms authorization with Active Directory groups

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文