gpt4 book ai didi

c# - 在 ASP.NET MVC5 中以编程方式设置用户

转载 作者:太空狗 更新时间:2023-10-30 00:07:30 24 4
gpt4 key购买 nike

我想在 ASP.NET MVC5 中以编程方式记录用户。我正在像这样设置身份验证 cookie:

FormsAuthentication.SetAuthCookie(username, true);

我想这就足够了。但后来我想检查 Request.IsAuthenticated 的值,它总是错误的。此外,当我检查 User.Identity.Name 的值时,我得到的是空字符串,而不是我之前传递的用户名。

我应该怎么做才能使这项工作正常进行并正确设置这些值?

编辑:还有一件事。我没有使用任何登录表单,我正在从不同的应用程序传递用户数据(登录名和 token )。

最佳答案

MVC5 带有 Identity,而不是旧的 SimpleMembership 和 ASP.NET Membership。 Identity 不使用表单例份验证,因此为什么您所做的没有效果。

要通过 Identity 登录用户,首先,您需要一个实际的用户实例,您可以通过执行以下操作获得该实例:

var userManager = new UserManager<ApplicationUser>(context); 
var user = userManager.FindByName(username);

然后,如果您有一个有效的用户(user != null),您需要通过以下方式为该用户生成声明身份:

var identity = UserManager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);

最后,您可以使用该身份让用户登录:

var authenticationManager = HttpContext.GetOwinContext().Authentication;
authenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = false }, identity);

(如果您想要持久登录,请将其更改为 true)

关于c# - 在 ASP.NET MVC5 中以编程方式设置用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24637037/

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