Код: Выделить всё
@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()
{
}
}
}
Код: Выделить всё
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;
}
Я добавил @(User.IsInRole («Администратор») ?»,AUTHENTICATED» : «NOT AUTHENTICATED») на странице /Identity/Account, там это сработало. На моих пользовательских страницах это не сработало.
Проблема
Итак, проблема в том, что все файлы .net основные страницы/представления, которые я создаю, не наследуют авторизацию. Похоже, что пользователь не авторизован (и в серверном коде пользователь не имеет права доступа к этим страницам). Но если я вернусь на любую из страниц Microsoft Identity, он авторизован, или если я перейду на свою угловую страницу, я авторизован, так что это происходит только на моих пользовательских страницах в папке страниц.
РЕДАКТИРОВАНИЕ:
Итак, все еще ища, что может быть не так, я обнаружил, что если я помещу свою страницу в папку Areas/Identity/Manage, пользователь будет аутентифицирован, и я смогу это проверить.
Но размещение файла в /Pages/... не позволит проверить подлинность пользователя. Если кто-нибудь знает, какой параметр ограничивает это, сообщите, пожалуйста.
Подробнее здесь: https://stackoverflow.com/questions/781 ... -not-inher
Мобильная версия