ASP. Net Базовый атрибут авторизации с политикой, перенаправляющей на страницу «Отказано в доступе» вместо страницы входа - PullRequest
0 голосов
/ 10 апреля 2020

Требование политики - AuthorizeWithSessionRequirement

    public class AuthorizeWithSessionRequirement : IAuthorizationRequirement
{
    public AuthorizeWithSessionRequirement()
    {

    }
}
public class AuthorizeWithSession : AuthorizationHandler<AuthorizeWithSessionRequirement>
{
    SessionManager _sessionManager;
    public AuthorizeWithSession(SessionManager sessionManager)
    {
        _sessionManager = sessionManager;
    }
    protected override Task HandleRequirementAsync(AuthorizationHandlerContext context,
AuthorizeWithSessionRequirement requirement)
    {
        string lsUserId = _sessionManager.CurrentUserId;

        //
        if (!string.IsNullOrEmpty(lsUserId))
        {
            context.Succeed(requirement);
        }
        //
        return Task.CompletedTask;
    }

}

На странице индекса я добавил атрибут Authorize с политикой и настроил его в Startup.cs, но когда контекст не удаётся вместо страницы входа, он переходит на страницу доступа, которая установить в Starup.cs

[Authorize(Policy = "AuthorizeWithSessionPolicy")]
public class IndexModel : PageModel
{..}
...