ASP.NET MVC 4 AuthorizeAttribute和ActiveDirectoryMembershipProvider
我正在尝试使用authorized属性在我的ASP.NET MVC 4 Intranet Web应用程序中实现基于Active Directory角色的授权ASP.NET MVC 4 AuthorizeAttribute和ActiveDirectoryMembershipProvider,asp.net,asp.net-mvc-4,Asp.net,Asp.net Mvc 4,我正在尝试使用authorized属性在我的ASP.NET MVC 4 Intranet Web应用程序中实现基于Active Directory角色的授权 [Authorize(Roles = "CONTOSO\\G_Helpdesk")] public ActionResult Index() { return View(); } 这应该只允许CONTOSO\G_Helpdesk组的成员查看索引页。我的开发虚拟机和Web服务器都不是域成员。所以我想我应该配置一个ActiveDirec
[Authorize(Roles = "CONTOSO\\G_Helpdesk")]
public ActionResult Index() {
return View();
}
这应该只允许CONTOSO\G_Helpdesk组的成员查看索引页。我的开发虚拟机和Web服务器都不是域成员。所以我想我应该配置一个ActiveDirectoryMembershipProvider。我的web.config如下所示
<authentication mode="Windows"/>
<authorization>
<deny users="?"/>
</authorization>
<membership defaultProvider="ADMembershipProvider">
<providers>
<add name="ADMembershipProvider"
type="System.Web.Security.ActiveDirectoryMembershipProvider,
System.Web, Version=2.0.0.0, Culture=neutral,
PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ADService"
connectionUsername="CONTOSO\User"
connectionPassword="myPassword"
attributeMapUsername="sAMAccountName"/>
</providers>
</membership>
<connectionStrings>
<add name="ADService" connectionString="LDAP://dc1/DC=CONTOSO,DC=com" />
</connectionStrings>
authorized属性是否使用成员资格提供程序?我认为它完全忽略了这一点。我发现我的思维方向不对。在使用Windows身份验证时,我将无法使用AD凭据从独立Web服务器进行身份验证 我有两个选择
- 使Web服务器成为域的成员
- 使用表单身份验证
我希望这个答案能帮那些在同一问题上挣扎的人节省一些时间。我认为你不需要
connectionUsername
中的CONTOSO
部分,而只是尝试使用用户名。不幸的是,这不起作用。我的猜测是会员资格提供者根本没有被使用。有没有办法记录/调试这个?
[Authorize]
public ActionResult Index() {
return View();
}