Owin身份验证会创建重定向循环

时间:2016-02-01 15:39:33

标签: asp.net redirect webforms asp.net-identity owin

我有一个ASP.NET 4.6 WebForms应用程序,该应用程序利用Identity 2.1包进行注册和身份验证系统。它使用 Owin身份验证,而不是表单或Windows。

我的尝试是不允许匿名用户查看网站的任何页面并将其重定向到“登录”页面。这就是我在Web.config中添加以下内容的原因(根据this article):

<system.web>
    <authorization>
      <deny users="?"/>
    </authorization>
    <authentication mode="None" />
</system.web>

<location path="~/Account/Login.aspx">
<system.web>
  <authorization>
    <allow users="*"/>
  </authorization>
</system.web>

从那时起,我总是在浏览器中运行应用程序时获得重定向循环。我找到了不同的MVC解决方案,但WebForms没有。

可能是什么原因以及如何将其删除?

这是我在Startup.Auth.cs文件中的配置方法:

public void ConfigureAuth(IAppBuilder app)
    {
        app.CreatePerOwinContext(ApplicationDbContext.Create);
        app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
        app.CreatePerOwinContext<ApplicationRoleManager>(ApplicationRoleManager.Create);
        app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);
        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/Account/Login.aspx"),
            CookieSecure = CookieSecureOption.Always,
            Provider = new CookieAuthenticationProvider
            {
                OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
                    validateInterval: TimeSpan.FromMinutes(30),
                    regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
            }
        });
    }

4 个答案:

答案 0 :(得分:0)

将身份验证模式设置为&#34;表单&#34; 并将服务器上的身份验证设置为Formsauthentication&amp;匿名。

等我寻找另一个解决方案&#39; s

答案 1 :(得分:0)

<deny users="?"/>

然后删除“var express = require('express'); var php = require("node-php"); var path = require("path"); var app = express(); app.use("/", php.cgi("/path/to/wordpress")); app.listen(9090); console.log("Server listening!"); ”行

答案 2 :(得分:0)

更改位置路径
<location path="~/Account/Login.aspx">

<location path="Account/Login.aspx">

并删除友好网址

答案 3 :(得分:0)

将此XML添加到您的Accounts / Web.Config

<system.web>
     <authorization>
         <allow users="*"/>
    </authorization>
</system.web>

这解决了我的问题。

请注意,这是您的帐户文件夹中的Web.Config