gpt4 book ai didi

c# - User.Identity.Name 返回 guid

转载 作者:太空狗 更新时间:2023-10-29 20:38:35 25 4
gpt4 key购买 nike

由于某些(晦涩的)原因,我的 MVC 4 应用程序在我运行时返回一个 guid:

var name = User.Identity.Name;

我还在全新的 MVC 4 应用程序中对此进行了测试,这对我来说是新行为。当我查找有关 IIdentity 的文档时,它指出(我记得)Identity.Name 应该

Gets the name of the current user.

为什么在我的案例中返回一个 guid?

来自 web.config

<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>

更多相关信息:该应用程序也部署在另一台机器上,与同一个数据库对话。我们在该数据库中使用“User.Identity.Name”的值,当它不存在于用户(新用户)时,我们添加一个具有该 guid 的新用户。

现在,奇怪的是:当您切换应用程序(从本地主机到部署在 T 上的应用程序)时,您需要重新登录。然后 User.Identity.Name 将被设置为一个新的 guid。

(对于初始默认应用程序,我们当然不与数据库对话,但同样的事情发生了;User.Identity.Name 返回一个 guid)

最佳答案

您需要找到与当前用户相对应的通用主体对象。

using System.Security.Principal;
...

GenericPrincipal genericPrincipal = GetGenericPrincipal();
GenericIdentity principalIdentity = (GenericIdentity)genericPrincipal.Identity;
string fullName = principalIdentity.Name;

关于c# - User.Identity.Name 返回 guid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39246416/

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