gpt4 book ai didi

asp.net - .Net 核心 : Set a user as logged in and authenticated

转载 作者:行者123 更新时间:2023-12-05 07:27:54 26 4
gpt4 key购买 nike

如果我使用的是 Identity(核心),我能否以编程方式设置登录用户?

我们有一个应用程序要求用户能够通过标准身份(用户电子邮件和密码)登录,或者能够通过提供的 AD 详细信息登录 - 并非所有用户都是内部用户,因此他们将使用身份,其他人想要使用它的能力。

所以...我正在使用 Novell LDAP 库,并且能够使用给定的登录详细信息有选择地查询我们的 AD,并确定提供的凭据是否有效。如果是,我可以在 AspNetUser 表中查找关联用户。

我能否以编程方式将登录用户设置为此身份?

即给定从 AspNetUser 表返回的“用户”,我如何以编程方式将此用户设置为当前登录并经过身份验证的用户?

最佳答案

您可以像下面这样以编程方式登录用户:

public class HomeController : Controller
{
private readonly UserManager<IdentityUser> _userManager;
private readonly SignInManager<IdentityUser> _signInManager;
public HomeController(UserManager<IdentityUser> userManager
, SignInManager<IdentityUser> signInManager)
{
_userManager = userManager;
_signInManager = signInManager;
}
public async Task<IActionResult> SignIn()
{
//get user name from AD
//query identity user by username
var username = "test@outlook.com";
var user = await _userManager.FindByNameAsync(username);
//sign in user
await _signInManager.SignInAsync(user, isPersistent: true);
return Ok();
}
}

注意

通过上述代码登录后,您可以获得下一个子请求的User Identity

关于asp.net - .Net 核心 : Set a user as logged in and authenticated,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53705308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com