我正在尝试使用Active Directory(没有登录页面)将用户身份验证到MVC3应用程序,此外还要根据用户组管理对部分应用程序的访问。我搜索的范围很广,没有端到端的例子。我希望有人可以提供帮助。我的Active Directory设置为:CN = Test User,OU = NETDOM,DC = NETLAB,DC = COM。
由于
答案 0 :(得分:2)
在appSettings
下,您应该添加
<add key="enableSimpleMembership" value="false" />
<add key="autoFormsAuthentication" value="false" />
然后在
下<system.web>
<authentication mode="Windows" />
</system.web>
appSettings
下的第一项将关闭自动重定向到/account/login
路线。而authenication
节点在IIS中启用Windows身份验证。
只要它们位于服务器所在的域上,那么这应该可以工作而无需实现任何身份验证
修改强>
如果要使用成员资格提供程序,请在system.web
节点下添加。
<membership defaultProvider="MyADMembershipProvider">
<providers>
<add name="MyADMembershipProvider" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ConnectionStringFromConnectionSettings" attributeMapUsername="sAMAccountName" />
</providers>
</membership>
然后您需要做的就是在Global.asax中为
添加一个事件处理程序PostAuthenticateRequest
检查AD。
请注意,因为此事件会对服务器上的所有请求触发,并可能影响性能。