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

时间:2014-03-31 15:55:44

标签: c# asp.net asp.net-mvc authentication

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

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

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

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

3 个答案:

答案 0 :(得分:1)

我使用ActiveDirectoryMembershipProvider提供身份验证,然后修改数据库以与SimpleRoleProvider对齐以提供授权。

答案 1 :(得分:1)

我建议使用LDAP,它非常简单地启动和运行,并且调用非常简单。

答案 2 :(得分:1)

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

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

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

 [MyAuthorization]
 public class BaseController : Controller
 {
 }

 public class HomeController : BaseController
 {
      //Do Stuff
 }