configurationASP.NET MVC进行针对AD的身份validation

什么是根据Active DirectoryvalidationASP.NET MVC应用程序用户的高级步骤?

我认为是这样的:

  1. 修改web.config以使用Windows身份validation
  2. configurationweb.config以使用ActiveDirectoryMembershipProvider
  3. 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内联网应用程序 ,所有的照顾你

在这里输入图像说明

如果您想手动执行此操作,则需要更改:

  1. 启用Windows身份validation
  2. 禁用匿名身份validation

有关在IIS7 / 8和IISExpress上执行此操作的详细信息,请执行以下操作:

IIS 7和IIS 8

  1. 打开IISpipe理器并导航到您的网站。
  2. 在“function视图”中,双击“身份validation”。
  3. 在身份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节点。

  4. 在“操作”窗格中,单击“启用”以使用Windows身份validation。

  5. 在“身份validation”页面上,select匿名身份validation。
  6. 在“操作”窗格中,单击“禁用”以禁用匿名身份validation。

IIS Express

  1. 右键单击Visual Studio中的项目,然后select使用IIS Express。
  2. 在解决scheme资源pipe理器中单击您的项目以select项目。
  3. 如果“属性”窗格未打开,请将其打开(F4)。
  4. 在项目的“属性”窗格中: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