Перенаправление 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>