MVC4 Windows身份验证重定向到帐户/登录

时间:2014-07-31 13:47:02

标签: asp.net-mvc-4 redirect visual-studio-2013 windows-authentication

我正在使用 Visual Studio 2013 并使用 IIS Express Development Server 在MVC 4应用程序中设置 Windows身份验证。但是,我被重定向到/ Account / Login(就像我使用表单身份验证一样)。

我没有在我的bin文件夹(或任何地方)中引用WebMatrix,如下所述:ASP.NET MVC3 and Windows Auth on IIS keeps redirecting to /Account/Login

我已按照此帖的建议将这些条目添加到web.config中的appSettings: MVC5 Redirects to Login.aspx when using Windows Authentication

<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>

这是我到目前为止所做的:

为system.web添加了Windows身份验证。

<authentication mode="Windows"/>

为我的控制器添加了[Authorize]属性。我也尝试在web.config中使用授权标记而不是控制器上的属性(拒绝用户=&#34;?&#34;)。结果是一样的。

对于项目中的Development Server设置,我更改了这些设置:

匿名身份验证=已禁用

Windows身份验证=已启用

我找不到对FormsAuthentication的引用。我无法弄清楚为什么它仍会重定向到不存在的登录页面。

1 个答案:

答案 0 :(得分:9)

创建项目时,可能已使用在项目的App_Start文件夹中添加Startup.Auth的模板完成。 (默认模板使用单个用户帐户,如果您没有将其更改为Windows身份验证作为创建新ASP.Net项目对话框中的身份验证方法)

如果这些行存在,请尝试注释掉

   app.CreatePerOwinContext(ApplicationDbContext.Create);
   app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);


   app.UseCookieAuthentication(new CookieAuthenticationOptions
   {
      AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
      LoginPath = new PathString("/Account/Login"),
      Provider = new CookieAuthenticationProvider
      {
          OnValidateIdentity =  SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
               validateInterval: TimeSpan.FromMinutes(30),
               regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
      }
  });

  app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);

或者,如果您尚未向此文件添加任何内容,则可以将其完全删除并对其进行调用

        ConfigureAuth(app);

在项目根目录中的startup.cs中找到

现在大多数帐户控制器都不适合使用,如果这种情况也准备清理它。

此行在网络配置中非常重要且正确

<authentication mode="Windows"/>

这些行可能与问题没有直接关系,可以删除

<add key="autoFormsAuthentication" value="false" />
<add key="enableSimpleMembership" value="false"/>

其他开发设置也是正确的。

相关问题