6

我正在尝试访问 pages_Membership 表(我正在使用 SimpleMembership)来检索帐户 ConfirmationToken。

如何从我的模型/控制器/DAL 访问此表?

我唯一能想到的就是从我的代码中执行纯 SQL 来获取这个值,但这似乎不是正确的做法,也不优雅。

4

1 回答 1

2

据我了解,没有直接的方法可以使用WebSecurity帮助器检索值。

当您创建用户和帐户时,该方法会返回确认令牌:

string confirmationToken = WebSecurity.CreateUserAndAccount("tester", "test123", requireConfirmationToken: true);

然后,您将此令牌(例如在链接中作为 QueryString 参数)发送到用户的电子邮件地址。当用户单击链接时,您的应用必须获取/读取此令牌,然后您必须调用:

WebSecurity.ConfirmAccount(userName, confirmationToken);

正如您所提到的,您当然可以直接编写自己的 SQL 来访问数据库,甚至可以将其添加webpages_Membership到 EntityFramewok EDMX 模型并直接查询表:

var confirmationToken = Database.Memberships.Single(m => m.UserId == userId).ConfirmationToken;

更多关于这个:

使用 ASP.NET 网页安全性的确认功能

获取帐户确认令牌?

于 2012-10-04T22:11:25.370 回答