获取当前用户ASP.NET成员身份的ID

Jea*_*ôté 12 c# asp.net membership-provider

你们如何设法使用ASP.NET成员资格提供程序获取当前用户的ID?我的应用程序是使用Database First方法的MVC 3,因此我创建了自己的数据库,成员资格提供程序和角色提供程序正在使用我的表(自定义成员资格和角色提供程序).

在我的一个页面(反馈)中,用户可以发送有关我的网站的反馈,如果他已连接,我想在插入时将UserID包含在表格中.

但由于ASP.NET Membership是一个IIdentity,我唯一可以访问的是Name.我不想使用名称在2个表之间创建链接,我想要ID!

那么你在申请这项非常简单的任务时做了什么?我的意思是,在连接用户需要插入值的几乎每个页面中,我们都需要用户的ID来为用户表创建正确的外键,对吧?顺便说一下,我对这个MVC框架很新,在我使用ASP.NET aspx和用户信息之前,我正在使用Session,它根据需要给了我当前的ID,Name和其他字段.由于使用Session对象的这个实现给了我共享托管的麻烦,我想使用真正的成员资格.

谢谢!

编辑

我想要的ID必须是一个整数(事实上,我想要User表中的UserID字段).

Kaf*_*Kaf 30

试试这个;

MembershipUser mu = Membership.GetUser("username");
string userId = mu.ProviderUserKey.ToString();
Run Code Online (Sandbox Code Playgroud)

对于当前登录的用户,您可以使用而不传递用户名;

string userId = Membership.GetUser().ProviderUserKey.ToString();
Run Code Online (Sandbox Code Playgroud)

  • 是的,如果你需要它,你可以把它作为Guid.`Guid userId =(Guid)(Membership.GetUser().ProviderUserKey)` (4认同)
  • 成员系统有`aspnet_Users`表,其中userId是'Uniqueidentifier/Guid`而不是int. (2认同)