首页 > 解决方案 > 在 MVC 中没有登录表单的 Active Directory 身份验证

问题描述

我想向 Active Directory 验证我的用户,但没有任何登录表单和按钮单击。

如果登录到机器的用户属于 Active Directory,我只想打开我的默认页面。

在这里,我使用了表单验证。

谁能给我实现相同目标的想法?您的建议将不胜感激......谢谢

标签: asp.net-mvcactive-directoryforms-authenticationwindows-authentication

解决方案


在 asp.net mvc 中,您可以使用 Identity 2 来验证您的用户。要添加标识 2,您应该打开Tools > NuGet Package Manager > Package Manager Console。然后在其中编写以下代码:

Install-Package Microsoft.AspNet.Identity.Samples -Pre

它将添加一些类和示例,您可以在视图中删除示例。

在下面的示例中,您可以在控制器顶部定义属性以帮助您登录:

private ApplicationSignInManager _signInManager;

    public ApplicationSignInManager SignInManager
    {
        get
        {
            return _signInManager ?? HttpContext.GetOwinContext().Get<ApplicationSignInManager>();
        }
        private set { _signInManager = value; }
    }

然后在你的控制器中的每个地方你都可以使用这个类(SignInManager.PasswordSignIn(model.Email, model.Password, model.RememberMe);登录。在这个类中,第三个参数是一个bool显示你是否想继续登录的参数。

用户登录到您的页面后,在您希望限制为经过身份验证的用户的页面中,您可以将[Authorize]注释添加到您的控制器,然后只有经过身份验证的用户才允许访问。例如:

[Authorize]
public ActionResult Index()
{
  return View();
} 

如果有什么遗漏的告诉我。


推荐阅读