Я реализую настраиваемую аутентификацию в проекте ASP.Net Core без идентификации.
Я включил CookieAuthentication
непосредственно перед UseMvc
app.UseCookieAuthentication(new CookieAuthenticationOptions()
{
AuthenticationScheme = "Cookie",
LoginPath = new PathString("/Account/Login/"),
AccessDeniedPath = new PathString("/Account/Forbidden/"),
AutomaticAuthenticate = true,
AutomaticChallenge = true
});
Добавить авторизацию для настраиваемой политики
services.AddAuthorization(options =>
{
options.AddPolicy("CustomPolicy",
policy => policy.RequireClaim("CustomClaim"));
});
А в домашнем контроллере я использовал соответствующий атрибут авторизации
[Authorize(Policy = "CustomPolicy")]
public class HomeController : Controller { }
Я ожидал, что меня перенаправят на /Account/Login/
каждый раз, когда я попытаюсь получить доступ к /Home/Index
, но получаю только 401
.
Я следил за этими двумя уроками:
- Использование промежуточного программного обеспечения cookie без идентификации ядра ASP.NET
- Авторизация на основе требований
Что мне не хватает?
Обновление: эта проблема существует только тогда, когда я использую IIS для запуска приложения, из exe перенаправление работает правильно.
Account/Login
, тогда как запуск веб-приложения вручную через исполняемый файл выполняет перенаправление. Я бы посоветовал запустить exe и посмотреть, относится ли это также к вашему приложению. - person ColinM   schedule 29.11.2016<authentication mode="Forms">
. - person Menelaos Vergis   schedule 29.11.2016