Требование политики - 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
{..}