1563 - asp.net - 如何获取用户名/登录在当前用户登录的ID /唯一标识符?

2019-09-28 07:41发布

使用1563,我如何获取用户名/日志在当前用户的ID /唯一标识符登录?

我目前工作的一个ASP.Net Web上的窗体应用程序。 用户成功登录之后,我可以得到下面的代码的用户名。

var name = User.Identity.Name;

不过,我想在登录的用户的ID /唯一标识符。 看着在1563网站上的个人资料表格,它看起来像1563调用该字段的用户名。

之后做一些研究,我也写了一些代码,获取我想用什么ClaimsPrincipal类和claimType ==“preferred_username”。 但代码看起来像一个黑客给我。 寻找的标准方法来获得这个值。

Answer 1:

是的,你是在正确的轨道上。 你必须找到基于其“类型”的索赔,但它很简单:

[Authorize]
public ActionResult SomeMethod()
{
var userId = HttpContext.User.FindFirstValue("preferred_username");
    ...
}


Answer 2:

这是我添加的代码:

var userId = principal.Claims.FirstOrDefault(c => c.Type == "preferred_username");


文章来源: okta - asp.net - How do I get the User Name / Log In Id / Unique Identifier of the current user sign in? - Standard Way?