configurationASP.NET MVC进行针对AD的身份validation
什么是根据Active DirectoryvalidationASP.NET MVC应用程序用户的高级步骤?
我认为是这样的:
- 修改web.config以使用Windows身份validation
- configurationweb.config以使用ActiveDirectoryMembershipProvider
- configurationweb.config以使用在AD中查找的自定义RoleProvider
上面看起来是否合理,如果是的话,我在哪里放置有效的用户检测逻辑?
在我的情况下,有效的用户是特定AD域中的某个人。
表单authentication
您可以使用常规表单身份validation来针对Active Directory对用户进行身份validation,因为您只需要AD连接string:
<connectionStrings> <add name="ADConn" connectionString="LDAP://YourConnection" /> </connectionStrings>
并添加成员资格提供程序以使用此连接:
<membership defaultProvider="ADMembership"> <providers> <add name="ADMembership" type="System.Web.Security.ActiveDirectoryMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicToken=b03f5f7f11d50a3a" connectionStringName="ADConn" connectionUsername="domain/user" connectionPassword="pwd" /> </providers> </membership>
您将需要使用username @ domain来成功validation用户。
这是让你开始的东西
Windows身份validation
如果你开始你的项目新的,你可以随时从模板中select内联网应用程序 ,所有的照顾你
如果您想手动执行此操作,则需要更改:
- 启用Windows身份validation
- 禁用匿名身份validation
有关在IIS7 / 8和IISExpress上执行此操作的详细信息,请执行以下操作:
IIS 7和IIS 8
- 打开IISpipe理器并导航到您的网站。
- 在“function视图”中,双击“身份validation”。
在身份validation页面上,selectWindows身份validation。 如果Windows身份validation不是一个选项,则需要确保在服务器上安装Windows身份validation。
在Windows上启用Windows身份validation: a)在控制面板中打开“程序和function”。 b)select“打开或closuresWindowsfunction”。 c)导航到“Internet信息服务”>“万维网服务”>“安全性”,并确保已选中Windows身份validation节点。
要在Windows Server上启用Windows身份validation,请执行以下操作: a)在服务器pipe理器中,selectWeb服务器(IIS),然后单击添加angular色服务b)导航到Web服务器>安全性,并确保已选中Windows身份validation节点。
在“操作”窗格中,单击“启用”以使用Windows身份validation。
- 在“身份validation”页面上,select匿名身份validation。
- 在“操作”窗格中,单击“禁用”以禁用匿名身份validation。
IIS Express
- 右键单击Visual Studio中的项目,然后select使用IIS Express。
- 在解决scheme资源pipe理器中单击您的项目以select项目。
- 如果“属性”窗格未打开,请将其打开(F4)。
- 在项目的“属性”窗格中:a)将“匿名身份validation”设置为“已禁用”。 b)将“Windows身份validation”设置为“已启用”。
在你的web.config
有类似的东西
<system.web> <authentication mode="Windows" /> <authorization> <deny users="?" /> </authorization> </system.web>
就是这样!
现在,当你想要用户身份,只需打电话
@User.Identity.Name
这将显示您的Domain\Username
像我一样:
这是让你开始的东西
这是一篇博客文章,介绍如何在ASP.NET MVC 5解决scheme中将OWIN身份validationCookie与Active Directory一起使用。
博文: http : //tech.trailmax.info/2016/03/using-owin-and-active-directory-to-authenticate-users-in-asp-net-mvc-5-application/
Github: https : //github.com/trailmax/OwinADAuthentication
我发现以下博客教程有助于使用开箱即用模板在MVC 4和MVC 5中实现这一点:
http://www.schiffhauer.com/mvc-5-and-active-directory-authentication/
为了解决这个问题,步骤如下:
- 修改AccountController.cs
- 修改AccountViewModel.cs
- 修改web.config