Я пытаюсь использовать проверку файлов cookie в основном приложении Asp.net (dnx 4.5). Обратите внимание, что, поскольку у меня есть собственный механизм аутентификации (радиус), я не использую готовый механизм, предоставляемый базовой аутентификацией. Когда пользователь не аутентифицирован, я хочу перенаправить на страницу входа в систему.Asp.net Core Authorize Redirection Not Happening
Я добавил в Startup.cs следующий код. Идея заключается в том, чтобы быть перенаправлена на Входе контроллер, если пользователь не прошел проверку подлинности:
app.UseCookieAuthentication(options => { options.LoginPath = new Microsoft.AspNet.Http.PathString("/Login"); });
В моем главном контроллере у меня есть:
[Authorize]
public IActionResult Index()
{
return View();
}
В моем Входе контроллере я возвращаю вид, соответствующий радиус для входа в систему:
[AllowAnonymous]
public IActionResult Index()
{
return View();
}
Однако, когда я запускаю приложение, перенаправление никогда не происходит. Глядя на консольный выход, я вижу следующее:
warn: Microsoft.AspNet.Mvc.Controllers.ControllerActionInvoker[0]
Authorization failed for the request at filter 'Microsoft.AspNet.Mvc.Filters.AuthorizeFilter'.
info: Microsoft.AspNet.Mvc.ChallengeResult[1]
Executing ChallengeResult with authentication schemes().
info: Microsoft.AspNet.Mvc.Infrastructure.MvcRouteHandler[2]
Executed action ThingsProjectorWeb.Controllers.HomeController.Index in 0ms
info: Microsoft.AspNet.Hosting.Internal.HostingEngine[2]
Request finished in 0.0016ms 401
Любая помощь в том, как правильно настроить эту систему, была бы весьма признательна. Благодаря!
Это не работает для меня на IISIntergration. На Kestrel я получаю идеальный 302, но на IIS я получаю 401. Есть ли что-нибудь, что вы сделали, чтобы заставить его работать и на IISIntergration? –
@MitchDart Возможно, IIS по умолчанию использует FormsAuthentication. Попробуйте добавить <удалить name = "FormsAuthenticationModule" /> <удалить name = "FormsAuthentication" /> в настройках сети? –
Strake
Это тоже не работает для меня. Застрял в попытке перенаправить в течение двух дней. Вам нужно добавить сервис до этого? У меня есть: services.AddSession(); который должен добавить поддержку для этого. Уже устал от Core. Это просто не работает. – Sam