【发布时间】:2016-08-31 09:56:36
【问题描述】:
由于某些(晦涩的)原因,我的 MVC 4 应用程序在我运行时返回了一个 guid:
var name = User.Identity.Name;
我还在一个全新的 MVC 4 应用程序中对此进行了测试,这对我来说是新行为。当我查看有关 IIdentity 的文档时,它指出(我记得)Identity.Name 应该
获取当前用户的名字。
为什么它在我的情况下返回一个 guid?
来自 web.config
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
更多相关信息: 该应用程序也部署在另一台机器上,与同一个数据库通信。我们在该数据库中使用“User.Identity.Name”的值,当用户(新用户)不存在时,我们使用该 guid 添加一个新用户。
现在,奇怪的是:当您切换应用程序(从 localhost 到部署在 T 上的应用程序)时,您需要再次登录。然后将 User.Identity.Name 设置为新的 guid。
(对于启动器默认应用程序,我们当然不会与 DB 对话,但同样的事情也会发生;User.Identity.Name 返回一个 guid)
【问题讨论】:
-
你用什么来认证/授权?
-
这只是 MVC4 互联网应用程序的默认模板:这是愚蠢的事情;您通常不必考虑这些事情...
-
检查了链接:如果我没记错的话,这些链接是为了找出 what guid 属于用户。我有一个完全相反的问题:为什么有一个指南?!
-
您没有对模型/上下文/...进行任何其他更改?
标签: c# .net asp.net-mvc asp.net-mvc-4