C# · 12月 26, 2021

c# – 获取当前用户ASP.NET成员资格的ID

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

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

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

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

谢谢!

编辑

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

解决方法 尝试这个; MembershipUser mu = Membership.GetUser(“username”);string userId = mu.ProviderUserKey.ToString();

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

string userId = Membership.GetUser().ProviderUserKey.ToString();