簡體   English   中英

如何設置當前用戶身份信息

[英]How To Set Current User Identity Information

我正在嘗試實現與不和諧的登錄。 我有用戶的不和諧信息,現在我需要進行修改,以便他們有權查看某些頁面。

我試過了:

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;
    }

我正在檢查ID是否存在於數據庫中。 然后,我試圖使它成為asp.net Identity的當前登錄用戶。

如何將此用戶設置為當前登錄的Identity?

您需要實例化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/zh-cn/aspnet/core/security/authentication/identity?view=aspnetcore-2.2&tabs=visual-studio

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM