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

问题描述 投票:0回答:3

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

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

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

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

c# asp.net asp.net-mvc authentication
3个回答
1
投票

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

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

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

 [MyAuthorization]
 public class BaseController : Controller
 {
 }

 public class HomeController : BaseController
 {
      //Do Stuff
 }

1
投票

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


1
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.