为 ASP.NET MVC 内部网应用程序实现 Windows 身份验证的最佳方法是什么?

本文关键字:身份验证 最佳 方法 是什么 Windows 实现 NET ASP MVC 内部网 应用程序 | 更新日期: 2023-09-27 17:55:40

我创建了一个 ASP.NET MVC 4应用程序,该应用程序以前使用Windows Forms对用户进行身份验证,但我正在将其移动到内部服务器,并希望根据用户的AD登录和使用Windows身份验证对用户进行身份验证。

在我的数据库中,我有一个用户 AD 用户名(域''用户名)列表和一些基本权限。如果用户尝试访问应用程序,并且他们位于数据库中,则我想授予访问权限并分配其权限。如果它们不在数据库中,我想授予访问权限,但只为其分配基本权限(只读)。

实现身份验证的最佳方法是什么(无需重写应用程序以使用简单成员资格)?(或者这真的是最好的方法!?

感谢任何帮助 - 每篇文章都指向 web.config 中的简单身份验证或命名用户。

为 ASP.NET MVC 内部网应用程序实现 Windows 身份验证的最佳方法是什么?

我建议编写一个自定义属性来处理这个问题:

MyAuthorizationAttribute : AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        //Check database here
    }
}

然后让所有控制器继承自具有授权属性的基本控制器:

 [MyAuthorization]
 public class BaseController : Controller
 {
 }
 public class HomeController : BaseController
 {
      //Do Stuff
 }

我会使用 ActiveDirectoryMembershipProvider 来提供身份验证,然后修改数据库以与 SimpleRoleProvider 保持一致以提供授权。

我建议考虑使用LDAP,启动和运行非常简单,调用非常简单。