Как пройти аутентификацию и авторизацию в blazorC#

Место общения программистов C#
Ответить
Anonymous
 Как пройти аутентификацию и авторизацию в blazor

Сообщение Anonymous »

Изменить: я ответил себе на этот пост. Он обновлен.
Я аутентифицирую пользователей с помощью Windows Authenticate от Blazor. Теперь я хочу авторизовать и этих пользователей. Я делаю это, прокручивая список пользователей и идентификатор пользователя в таблице базы данных, которая выглядит следующим образом:



Идентификатор пользователя
Идентификатор роли




3
1


7
1


112
1


4
2


72


8
2




Фактическая авторизация происходит в CustomAuthenticationStateRrovider.cs

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

using Microsoft.AspNetCore.Components.Authorization;
using System.Diagnostics;
using System.Security.Claims;

namespace Authtest.Services
{
public class CustomAuthenticationStateProvider : AuthenticationStateProvider
{
private List userRoles = default!;

public override async Task GetAuthenticationStateAsync()
{
var userroleService = new UserRoleService();
userRoles = userroleService.GetUserRolesListe();

var identity = new ClaimsIdentity();

foreach (var role in userRoles)
{
Debug.WriteLine($"Adding role {role.RoleId} to identity.");
identity.AddClaim(new Claim(ClaimTypes.Role, role.RoleId.ToString()));
}

var user = new ClaimsPrincipal(identity);

return new AuthenticationState(user);
}
}
}
Как вы можете видеть на снимке экрана, запрос к базе данных работает. Отладка пользователя var
У меня сейчас возникла следующая проблема, и она находится в индексе. razor, как видно на втором снимке экрана, проблема с аутентификацией, отображается авторизованная часть, хотя у моего пользователя есть роль 1, и только пользователи с ролью 2 должны видеть текст. Другая проблема (которая, я думаю, зависит от того же решения) с LoginDisplay.razor заключается в том, почему всегда отображается часть NotAuthorized.
PS: Я думаю, проблема в том, что при создании нового ClaimsPrincipal Я отменяю аутентификацию Windows.
Я создал совершенно новое серверное приложение syncfusion blazor и поместил в новое только часть аутентификации из моего проекта, чтобы я мог попробовать все, но ничего. сработало.
Изменить: я даже сделал здесь более подробный снимок экрана с пользовательской переменной.

Подробнее здесь: https://stackoverflow.com/questions/769 ... -in-blazor
Ответить

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

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

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

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

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