在Asp.Net MVC 5中获取已登录用户的UserID

菲利普·埃格

我是ASP.Net MVC的新手,现在尝试使用内置的用户登录功能。我可以在注册视图中注册用户。如果我尝试使用创建的用户登录,这也将起作用。我已重定向到母版页。

但是我无法获取当前用户的UserID。我在HomeController和AccountController中尝试了我的代码,但是都没有用。第一行中的语句始终返回null。

var userID = User.Identity.GetUserId();

if (!string.IsNullOrEmpty(userID))
{
    var manager = new UserManager<ApplicationUser>(new UserStore<ApplicationUser>(ApplicationDbContext.Create()));
    var currentUser = manager.FindById(User.Identity.GetUserId());
}

在获取用户ID之前,我还需要做其他事情吗?

水下的

答案就在您的代码中。这会返回什么?

var userID = User.Identity.GetUserId();

如果您使用的是ASP.NET Identity,则登录(并重定向到另一个页面)之后,IPrincipal.IIdentity应当为ClaimsIdentity您可以尝试以下方法:

var claimsIdentity = User.Identity as ClaimsIdentity;
if (claimsIdentity != null)
{
    // the principal identity is a claims identity.
    // now we need to find the NameIdentifier claim
    var userIdClaim = claimsIdentity.Claims
        .FirstOrDefault(x => x.Type == ClaimTypes.NameIdentifier);

    if (userIdClaim != null)
    {
        var userIdValue = userIdClaim.Value;
    }
}

上面的代码块与IIdentity.GetUserId扩展方法的功能不完全相同,但从本质上讲是一样。

如果这些都不起作用,则该用户可能尚未真正登录到您的站点。登录后,您必须重定向到另一个页面,然后服务器才能将身份验证cookie写入浏览器。必须在后续请求中User.Identity包含所有声明信息(包括NameIdentifier之前编写此cookie

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有ASP.NET标识的MVC 5-用户登录时获取声明

来自分类Dev

ASP .NET MVC 5中的异步任务

来自分类Dev

C#ASP .NET; 获取登录用户的NetworkCredential对象?

来自分类Dev

ASP.NET MVC 5中的ClaimsIdentity

来自分类Dev

ASP.NET MVC4获取登录用户的电子邮件

来自分类Dev

LinqToTwitter用户授权ASP.NET MVC

来自分类Dev

无法自动登录asp.net MVC

来自分类Dev

如何通过单点登录在asp.net中获取Windows登录用户名

来自分类Dev

asp.net 5与asp.net mvc是否不同?

来自分类Dev

ASP.NET 5 MVC 6-登录用户

来自分类Dev

ASP.NET MVC5身份:避免在注册后更改登录用户

来自分类Dev

ASP.NET MVC-获取用户的登录状态

来自分类Dev

防止已登录的用户访问asp.net mvc 5中的登录页面

来自分类Dev

如何使用字符串键(串行键)验证登录用户以在ASP.NET MVC中执行某些特定操作?

来自分类Dev

获取ASP.NET Core MVC中当前登录用户的角色

来自分类Dev

ASP.Net MVC 5中的Cookie

来自分类Dev

验证登录表单ASP.NET MVC

来自分类Dev

删除ASP.NET Core Identity中已登录用户的策略

来自分类Dev

与ASP.NET MVC中的ASP.NET等效

来自分类Dev

从登录用户获取产品时出错。ASP.NET Core MVC

来自分类Dev

我如何获取登录asp.net mvc的用户的userId或MembershipId

来自分类Dev

ASP.Net MVC登录实践

来自分类Dev

获取登录用户角色:Asp.net MVC5

来自分类Dev

即使用户已登录,CustomAuthorizeAttribute也会重定向到LoginView(ASP.Net MVC 5)

来自分类Dev

如何在ASP.NET MVC 5中获取外部登录的电子邮件地址

来自分类Dev

如何通过单点登录在asp.net中获取Windows登录用户名

来自分类Dev

如何在ViewComponent Asp.Net Core中获取当前的登录用户

来自分类Dev

在ASP.NET MVC 5中登录后重定向到用户配置文件

来自分类Dev

ASP.NET MVC 5 获取声明

Related 相关文章

  1. 1

    具有ASP.NET标识的MVC 5-用户登录时获取声明

  2. 2

    ASP .NET MVC 5中的异步任务

  3. 3

    C#ASP .NET; 获取登录用户的NetworkCredential对象?

  4. 4

    ASP.NET MVC 5中的ClaimsIdentity

  5. 5

    ASP.NET MVC4获取登录用户的电子邮件

  6. 6

    LinqToTwitter用户授权ASP.NET MVC

  7. 7

    无法自动登录asp.net MVC

  8. 8

    如何通过单点登录在asp.net中获取Windows登录用户名

  9. 9

    asp.net 5与asp.net mvc是否不同?

  10. 10

    ASP.NET 5 MVC 6-登录用户

  11. 11

    ASP.NET MVC5身份:避免在注册后更改登录用户

  12. 12

    ASP.NET MVC-获取用户的登录状态

  13. 13

    防止已登录的用户访问asp.net mvc 5中的登录页面

  14. 14

    如何使用字符串键(串行键)验证登录用户以在ASP.NET MVC中执行某些特定操作?

  15. 15

    获取ASP.NET Core MVC中当前登录用户的角色

  16. 16

    ASP.Net MVC 5中的Cookie

  17. 17

    验证登录表单ASP.NET MVC

  18. 18

    删除ASP.NET Core Identity中已登录用户的策略

  19. 19

    与ASP.NET MVC中的ASP.NET等效

  20. 20

    从登录用户获取产品时出错。ASP.NET Core MVC

  21. 21

    我如何获取登录asp.net mvc的用户的userId或MembershipId

  22. 22

    ASP.Net MVC登录实践

  23. 23

    获取登录用户角色:Asp.net MVC5

  24. 24

    即使用户已登录,CustomAuthorizeAttribute也会重定向到LoginView(ASP.Net MVC 5)

  25. 25

    如何在ASP.NET MVC 5中获取外部登录的电子邮件地址

  26. 26

    如何通过单点登录在asp.net中获取Windows登录用户名

  27. 27

    如何在ViewComponent Asp.Net Core中获取当前的登录用户

  28. 28

    在ASP.NET MVC 5中登录后重定向到用户配置文件

  29. 29

    ASP.NET MVC 5 获取声明

热门标签

归档