Я нашел себе решение вышеприведенного вопроса о том, как перенаправить пользователя на страницу реферера после неудачной проверки пользовательской авторизации.
Пожалуйста, если есть лучший способ сделать это, пожалуйста, помогите me.
1 - я удалил приведенный ниже код из HandleRequirementAsync
и позволил перенаправить его на страницу AccessDenied.
var Response = _httpContextAccessor.HttpContext.Response;
var message= Encoding.UTF8.GetBytes("User with Super Admin role cannot be edited");
**// return RedirectToPage("/View", new {id = id});**
Response.OnStarting(async () =>
{
_httpContextAccessor.HttpContext.Response.StatusCode = 429;
await Response.Body.WriteAsync(message, 0, message.Length);
});
2 - В классе AccessDeniedModel я добавил ниже код:
[TempData]
public string Message { get; set; }
public void OnGet()
{
Message = "Access Denied: You do not have access to this resource.";
HttpContext.Response.Redirect(HttpContext.Request.Headers["Referer"]);
}
4 - В /User/Roles/View.cshtml.cs я определил модель publi c свойство
[TempData]
public string Message { get; set; }
3 - В /User/Roles/View.cshtml Я добавил <p>@Model.Message</p>
для отображения сообщения пользователю.