Как установить текущую информацию о личности пользователя - PullRequest
0 голосов
/ 01 июля 2019

Я пытаюсь ввести логин с раздоромУ меня есть информация о разногласиях пользователей, теперь мне нужно сделать так, чтобы они имели право просматривать определенные страницы.

Я пробовал:

System.Web.HttpContext.Current.User.Identity.Name = User.id;
System.Web.HttpContext.Current.User.Identity.IsAuthenticated = true;

Однако это не сработаетпотому что они являются значениями только для чтения.

Вот как выглядит класс User в настоящее время:

public class User
    {
        public string id;
        public string username;
        public string discriminator;
        public string avatar;
        public bool verified;
        public string email;
        public int flags;
        public int premium_type;
    }

И я проверяю, существует ли идентификатор в базе данных.Затем я пытаюсь сделать так, чтобы это был текущий вошедший в систему пользователь для идентификации asp.net.

Как я могу установить этого пользователя в качестве текущего вошедшего в систему идентификации?

1 Ответ

0 голосов
/ 01 июля 2019

Вам необходимо создать экземпляр UserManager и SignInManager.

В вашем контроллере добавьте эти зависимости.

private readonly UserManager _userManager;
private readonly SignInManager _signInManager;

public AccountController(
    UserManager userManager,
    SignInManager signInManager)
{
    _signInManager = signInManager;
    _userManager = userManager;
}

Затем используйте этих двух менеджеров, чтобы получить необходимую информацию

var appUser = _userManager.FindByIdAsync(user.Id);

Чтобы получить приложение пользователя

_signInManager.SignInAsync(appUser);

Тогда этот пользователь войдет в систему, если он уже существует в вашей системе. Если этого не произойдет, вам нужно будет создать нового пользователя через _userManager.

Вот несколько справочных ссылок:

https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity?view=aspnetcore-2.2&tabs=visual-studio

https://docs.microsoft.com/en-us/previous-versions/aspnet/dn613290(v%3Dvs.108)

https://docs.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.identity.signinmanager-1?view=aspnetcore-2.2

...