Перенаправление MVC 5 на страницу входа не работает с OWIN

Я пытаюсь разобраться с помощью OWIN. Я создал два проекта MVC 5. Один с аутентификацией с использованием Aspnet.Identity и другой начинались как пустой проект.

Я добавил в проект emptyp следующее:

  • контроллер учетной записи с действием входа в систему и coresponding view

  • Автозагрузка.cs и еще один частичный запуск.cs с

public partial class Startup
{
        public void ConfigureAuth(IAppBuilder app)
        {
            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = "ApplicationCookie",
                LoginPath = new PathString("/Account/Login")
            });
        }
    }

я украсил о действии в домашнем контроллере с атрибутом [Authorize] в обоих проектах.

когда я запускаю первый проект и иду на экран "о программе" перед входом в систему, он перенаправляется на действие входа в систему. Когда я делаю то же самое для второго проекта, я получаю "HTTP Error 401.0 - Unauthorized" вместо перенаправления.

есть идеи, что заставит второго вести себя таким образом?

2 ответов


Я создал два новых подобных проекта и смог воспроизвести вашу ошибку.

в пустом проекте мне пришлось установить Microsoft.Owin.Host.SystemWeb (через Nuget) и как только я это сделал, я получил кучу ошибок в моем запуске.классе по информатике. В итоге получилось так:

[assembly: OwinStartupAttribute(typeof(v2.Startup))]
namespace v2
{
    public partial class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            ConfigureAuth(app);
        }

        public void ConfigureAuth(IAppBuilder app)
        {
            app.UseCookieAuthentication(new CookieAuthenticationOptions
            {
                AuthenticationType = "ApplicationCookie",
                LoginPath = new PathString("/Account/Login")
            });
        }
    }
}

В конце концов, теперь я могу нажать / увидеть мой вид входа в систему, когда я вызываю метод About (), украшенный .

надеюсь, что это помогает! Винс!--4-->


Per ASP.NET MVC 5 Web.config:" FormsAuthenticationModule "или"FormsAuthentication"

<system.webServer>
    <modules>
      <remove name="FormsAuthentication" />
    </modules>
</system.webServer>

для дополнительной безопасности я оставил оба обработчика "опечатки" (в случае, если Microsoft изменит его позже, давая мне)

<system.webServer>
    <modules>
     <remove name="FormsAuthenticationModule" />
     <remove name="FormsAuthentication" />
    </modules>
</system.webServer>