C# 登录用户';身份证

C# 登录用户';身份证,c#,asp.net-mvc-4,simplemembership,C#,Asp.net Mvc 4,Simplemembership,如何获取登录用户的用户ID?我使用的是标准系统生成的AccountModel。我可以使用以下方法获取用户名: User.Identity.Name 但是我没有看到UserId字段。我想将UserId用作另一个表的外键。我想您正在寻找 最好的方法是使用WebSecurity类 var memberId = WebSecurity.GetUserId(User.Identity.Name); 别忘了在控制器上添加[InitializeSimpleMembership])试试这个: using M

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

User.Identity.Name

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

我想您正在寻找


最好的方法是使用WebSecurity类

var memberId = WebSecurity.GetUserId(User.Identity.Name);
别忘了在控制器上添加
[InitializeSimpleMembership]

试试这个:

using Microsoft.AspNet.Identity;
User.Identity.GetUserId();
这就是如何在当前MVC(MVC5/EF6/VS2013)模板的局部视图中完成的


如果我错了,请纠正我,因为我看过很多Aviatrix的答案,但是如果数据库中有多个用户具有相同的名称,会发生什么情况

他们的答案已经非常好了,但我从您的问题中了解到的是,您希望使用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;

}
公共列表RV()
{
var email=User.Identity.Name;
Usertable m=db.Uusertables.Where(x=>x.user\u Email==Email.SingleOrDefault();
var id=m.user\u id;
var p=db.ForeignkeyTable.Where(x=>x.user_fk_id==id.ToList();
返回p;
}

这样,您就可以在foreignkey中从该id的数据库返回所有数据。

Simple Membership?ASP.NET成员资格?嗯,我得到:错误1'System.Web.Security.MembershipUser'不包含“GetUser”的定义谢谢,这里输入了错别字,它应该是
Membership
.Membership.GetUser().UserName作为用户名,而不是内部成员资格数据库键,只要您的提供商遵循使用
int
作为唯一标识符的要求。如果用户已登录并尝试更改当前密码,则无法使用此解决方案。
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;

}