Asp.net mvc ASP.NET MVC 3+Windows身份验证+数据库登录检查

Asp.net mvc ASP.NET MVC 3+Windows身份验证+数据库登录检查,asp.net-mvc,authentication,asp.net-mvc-3,Asp.net Mvc,Authentication,Asp.net Mvc 3,我需要了解设置ASP.NET MVC 3 web应用程序的正确方法,其中用户以两种方式登录: 它们是域Windows身份验证的一部分 应用程序的用户表/存储表示他们有权访问应用程序 要处理第一个要求,我在web.config中将authenization元素设置为Windows: <authentication mode="Windows" /> 有什么想法吗?我认为在ASP.NET MVC中有更好的方法通过创建全局授权筛选器来实现它我认为在ASP.NET MVC中有更好的方法通过

我需要了解设置ASP.NET MVC 3 web应用程序的正确方法,其中用户以两种方式登录:

它们是域Windows身份验证的一部分 应用程序的用户表/存储表示他们有权访问应用程序 要处理第一个要求,我在web.config中将authenization元素设置为Windows:

<authentication mode="Windows" />

有什么想法吗?

我认为在ASP.NET MVC中有更好的方法通过创建全局授权筛选器来实现它

我认为在ASP.NET MVC中有更好的方法通过创建全局授权筛选器来实现它

如果在游戏中使用全局授权筛选器,那就太晚了。授权通常用于检查当前用户是否有权访问给定的控制器/操作。如果您的应用程序中没有任何不受ASP.NET MVCA控制的资源,则我看不到访问所有控制器和访问应用程序之间的任何区别。在游戏中,使用MVCA筛选器将太迟。授权通常用于检查当前用户是否有权访问给定的控制器/操作。如果您的应用程序中没有ASP.NET MVC不控制的任何资源,我看不到访问所有控制器和访问应用程序之间有任何区别
void MvcApplication_AuthenticateRequest( object sender, EventArgs e )
{
  var formsAuthTicket = GetFormsAuthTicket();
  if ( formsAuthTicket == null || formsAuthTicket.Expired )
  {
    var userHasAccess = true; //TODO: Ask the someone if the user has access
    if ( userHasAccess )
    {
      FormsAuthenticationTicket authTicket = new FormsAuthenticationTicket( 1,
        HttpContext.Current.User.Identity.Name,
        DateTime.Now,
        DateTime.Now.AddMinutes( 1 ),
        true,
        HttpContext.Current.User.Identity.Name );

      string encTicket = FormsAuthentication.Encrypt( authTicket );

      this.Response.Cookies.Remove( FormsAuthentication.FormsCookieName );
      this.Response.Cookies.Add( new HttpCookie( FormsAuthentication.FormsCookieName, encTicket ) );
    }
    else 
      throw new HttpException( 401, "User is not authorized" );
  }
}