如何获取登录用户的 UserId?我正在使用标准系统生成的 AccountModel。我可以使用以下方式获取用户名:
User.Identity.Name
但我没有看到 UserId 字段。我想使用 UserId 作为另一个表的外键。
如何获取登录用户的 UserId?我正在使用标准系统生成的 AccountModel。我可以使用以下方式获取用户名:
User.Identity.Name
但我没有看到 UserId 字段。我想使用 UserId 作为另一个表的外键。
试试这个:
using Microsoft.AspNet.Identity;
User.Identity.GetUserId();
这就是它在当前 MVC (MVC5/EF6/VS2013) 模板的部分视图中的完成方式。
如果我错了,请纠正我,因为我已经看过很多 Aviatrix 的答案,但是如果多个用户在数据库中具有相同的名称会发生什么?
我认为您正在寻找ProviderUserKey - 从用户的会员数据源获取用户标识符。
object id = Membership.GetUser().ProviderUserKey
最好的方法是使用 WebSecurty 类
var memberId = WebSecurity.GetUserId(User.Identity.Name);
并且不要忘记[InitializeSimpleMembership]
在控制器顶部添加:)
他们已经是很好的答案,但我从你的问题中了解到你想使用 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 的数据库中的所有数据。