如何获取登录用户的UserId?我使用标准系统生成的AccountModel。我可以使用以下方式获取用户名:
User.Identity.Name
但我没有看到UserId字段。我想将UserId用作另一个表的外键。
答案 0 :(得分:25)
试试这个:
using Microsoft.AspNet.Identity;
User.Identity.GetUserId();
这就是它在当前MVC(MVC5 / EF6 / VS2013)模板的部分视图中的完成情况。
如果我错了,请纠正我,因为我已经看过很多Aviatrix的答案,但是如果多个用户在数据库中有相同的名字会怎么样?
答案 1 :(得分:15)
我认为你正在寻找ProviderUserKey - Gets the user identifier from the membership data source for the user.
object id = Membership.GetUser().ProviderUserKey
答案 2 :(得分:10)
最好的方法是使用WebSecurty类
var memberId = WebSecurity.GetUserId(User.Identity.Name);
并且不要忘记在控制器上添加[InitializeSimpleMembership]
:)
答案 3 :(得分:0)
他们的答案已经非常好,但是我从您的问题中了解到,您想使用id从数据库中获取数据。因此,您可以执行此操作。
public List<ForeignkeyTable> RV()
{
var email = User.Identity.Name;
Usertable m = db.Uusertables.Where(x => x.user_Email == email).SingleOrDefault();
var id = m.user_Id;
var p = db.ForeignkeyTable.Where(x => x.user_fk_id == id).ToList();
return p;
}
这样,您可以在外键中从该ID的数据库返回所有数据。