我正在尝试使用Discord实现登录。我有用户的不和谐信息,现在我需要做到这一点,以便他们被授权查看某些页面。
我尝试过:
System.Web.HttpContext.Current.User.Identity.Name = User.id;
System.Web.HttpContext.Current.User.Identity.IsAuthenticated = true;
但是,这不起作用,因为它们仅读取值。
这是当前用户类的样子:
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身份的用户登录的当前。
如何将此用户设置为以身份登录的电流?
您需要实例化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://learn.microsoft.com/en-us/aspnet/core/security/authentication/indentity?view=peaspnetcore-2&amp.amp; tabs=visual-studio
https://learn.microsoft.com/en-us/previous-versions/aspnet/dn613290(v%3DVS.108(
https://learn.microsoft.com/en-us/dotnet/api/microsoft.aspnetcore.identity.signinmanager-1?view= asspnetcore-2.2