Добавление страницы бритвы в проект .net Angular с удостоверением Microsoft не наследует авторизациюC#

Место общения программистов C#
Ответить
Anonymous
 Добавление страницы бритвы в проект .net Angular с удостоверением Microsoft не наследует авторизацию

Сообщение Anonymous »

При добавлении новой страницы razor в locahost/error/404 я не могу аутентифицировать пользователя. В верхнем меню есть регистрация и вход. Но если я нажму «Войти» и меня отправят на https://localhost/Identity/Account/Login, я пройду аутентификацию. Так что это происходит только на пользовательских страницах Razor.

Код: Выделить всё

@page
@model WebApplication1.Pages.ErrorPages._404Model
@{
}
404 - THIS PAGE WAS NOT FOUND
@(User.IsInRole("Admin") ? ",AUTHENTICATED" : "NOT AUTHENTICATED")

Код: Выделить всё

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;

namespace WebApplication1.Pages.ErrorPages
{
public class _404Model : PageModel
{
public void OnGet()
{
}
}
}
Я попробовал спросить ChatGPT. У меня много Гугла. И я пытался добавлять разные части и коды, например:

Код: Выделить всё

        private readonly DbContext _dbContext;
private readonly UserManager _userManager;
private readonly SignInManager _signInManager;

public IndexModel(DbContext context,
UserManager userManager,
SignInManager signInManager)
{
_dbContext = context;
_userManager = userManager;
_signInManager = signInManager;
}
Я попытался проверить, есть ли у Program.cs какие-либо ограничения относительно аутентификации только пользователей на определенных страницах.
Я добавил @(User.IsInRole («Администратор») ?»,AUTHENTICATED» : «NOT AUTHENTICATED») на странице /Identity/Account, там это сработало. На моих пользовательских страницах это не сработало.
Проблема
Итак, проблема в том, что все файлы .net основные страницы/представления, которые я создаю, не наследуют авторизацию. Похоже, что пользователь не авторизован (и в серверном коде пользователь не имеет права доступа к этим страницам). Но если я вернусь на любую из страниц Microsoft Identity, он авторизован, или если я перейду на свою угловую страницу, я авторизован, так что это происходит только на моих пользовательских страницах в папке страниц.
РЕДАКТИРОВАНИЕ:
Итак, все еще ища, что может быть не так, я обнаружил, что если я помещу свою страницу в папку Areas/Identity/Manage, пользователь будет аутентифицирован, и я смогу это проверить.
Но размещение файла в /Pages/... не позволит проверить подлинность пользователя. Если кто-нибудь знает, какой параметр ограничивает это, сообщите, пожалуйста.

Подробнее здесь: https://stackoverflow.com/questions/781 ... -not-inher
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»