User应该有Items,我应该存储在用户Id的Item?我可以扩展User与类List<Item>导航属性?我正在使用MVC模板中的"个人用户帐户".
试过这些:
'Membership.GetUser()'为空.
问候,我创建了一个自定义成员资格提供程序,以便可以对我的应用程序上的用户进行身份验证.如何在控制器中检索当前用户ID?我需要这个从这个用户的数据库获取一些数据,如下所示:
PersistanceManger.RepositoryUser.GetInformation(userROWGUID);
Run Code Online (Sandbox Code Playgroud) 我试图显示我的应用程序"学校"的用户列表,当管理员登录然后他可以查看列表中的所有用户但是当校长登录时,他应该只获得他的学校的用户,所以我想得到当前登录userId然后由userId我将获得schoolId,因为userId是学校表中的外键...一旦我得到schoolId我可以显示该学校的成员.
但我的问题是如何获取当前登录的UserID.我正在使用MVC 1.0 Asp.Net - "会员"
如果我上面的逻辑是错误的那么请告诉我备用好主意,以便委托人只能看到他的用户列表..
对于某些(模糊)原因,我的MVC 4应用程序在运行时返回一个guid:
var name = User.Identity.Name;
Run Code Online (Sandbox Code Playgroud)
我也在一个全新的MVC 4应用程序中对此进行了测试,这对我来说是新的行为.当我查阅有关IIdentity的文档时,它表明(我记得)Identity.Name应该
获取当前用户的名称.
为什么它会在我的情况下返回一个guid?
来自web.config
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
Run Code Online (Sandbox Code Playgroud)
更多相关信息: 该应用程序也部署在另一台计算机上,与同一数据库通信.我们在该数据库中使用"User.Identity.Name"的值,当用户(新用户)不在那里时,我们添加一个具有该guid的新用户.
现在,奇怪的是:当您切换应用程序时(从localhost到部署在T上的应用程序),您需要再次登录.然后将User.Identity.Name设置为新的guid.
(使用启动器默认应用程序,我们当然不会与DB通信,但同样的事情发生; User.Identity.Name返回一个guid)