Я новичок в ядре. net, но разработал asp. net в течение нескольких лет. У меня есть основной сайт с аутентификацией на основе Windows AD. Я использую группы AD для управления доступом, моя страница индекса бритвы настроена для группы AD
[Authorize(Policy = "ADRoleOnly")]
, когда пользователь, не являющийся частью группы, пытается получить доступ к странице индекса бритвы, он получает 403 отказано . Я пытаюсь понять, как перенаправить их на страницу бритвы, которую я настроил как «/ unAuthAccess». Эта страница "/ unAuthAccess" имеет значение
[AllowAnonymous]
, и я подтвердил, что пользователи в группе AD могут просматривать эту страницу '/ unAuthAccess', а также пользователи, не входящие в группу AD, которые получите 403, поэтому allowanonymous работает для страницы / unAuthAccess.
поэтому я не знаю, где и КАК добавить перенаправление, когда какие-либо пользователи попадают на любую страницу, которую я установил с политикой, когда они не У меня нет разрешения на просмотр.
[Authorize(Policy = "ADRoleOnly")]
Я пробовал в Startup.cs следующее со статусом 401 и 403
app.UseStatusCodePages(async context =>
{
if (context.HttpContext.Response.StatusCode == 401)
{
app.Use(async (context, next) =>
{
context.Request.Path = "/UnAuthAccess";
await next();
});
}
});
, что не сработало. Тогда я попробовал
app.UseStatusCodePagesWithRedirects("/Errors/{0}");
со страницей razor, установленной на «/ Errors / 401», а также «/ Errors / 403», я не мог вспомнить, какой из них должен быть установлен, и перехватить доступ unAuth от пользователя.
в любом случае пользователь не перенаправляется на мою razorpage, и я просто получаю стандартное сообщение об ошибке HTTP 403.
просто ищу справку о том, как перенаправления работают в ядре ??? я должен как-то перенаправить прямо со страницы бритвы cs / backend-кода, если да, то как ??
У меня это работает в старом asp. net 4.x с использованием Global.asax, но этот метод не работает в основном: (
if (Response.StatusCode == 401 && Request.IsAuthenticated)
{
Response.Redirect("~/unauthAccess.aspx");
}