登录用户的ID

时间:2012-12-21 17:57:49

标签: c# asp.net-mvc-4 simplemembership

如何获取登录用户的UserId?我使用标准系统生成的AccountModel。我可以使用以下方式获取用户名:

User.Identity.Name

但我没有看到UserId字段。我想将UserId用作另一个表的外键。

4 个答案:

答案 0 :(得分:25)

试试这个:

using Microsoft.AspNet.Identity;
User.Identity.GetUserId();

这就是它在当前MVC(MVC5 / EF6 / VS2013)模板的部分视图中的完成情况。

如果我错了,请纠正我,因为我已经看过很多Aviatrix的答案,但是如果多个用户在数据库中有相同的名字会怎么样?

答案 1 :(得分:15)

答案 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的数据库返回所有数据。