为 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 中的简单身份验证或命名用户。
我建议编写一个自定义属性来处理这个问题:
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,启动和运行非常简单,调用非常简单。