我正在尝试使用Discord实现登录。我有用户的不和谐信息,现在我需要使它得到授权,以便他们可以查看某些页面。
我尝试过:
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身份的当前登录用户。
如何将该用户设置为当前登录的身份?
答案 0 :(得分:0)
您需要实例化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/previous-versions/aspnet/dn613290(v%3Dvs.108)