4

我刚刚建立了一个新的 ASP.NET MVC 网站,我想更改它以强制用户通过单击电子邮件中的验证链接来验证他们的电子邮件地址。我用尽可能多的搜索词搜索了答案,但我想我从来没有找到正确的。

我开始使用会员对象来看看我能想出什么,我确实看到你可以切换 IsApproved,所以我将默认设置为 false。之后我注册了一个新用户,但没有收到任何电子邮件(正如我所料),但它也让我在当前会话中登录。然而,这不是重点。

是否有用于发送验证电子邮件的内置机制,还是我需要实现的?

4

2 回答 2

10

没有内置的东西可以实现这一点。不幸的是,您必须自己实施电子邮件发送和验证过程。

不过,你是在正确的路线上。一旦用户在您的站点上注册,您必须将他们的IsApproved属性设置为 false,创建一个随机的“激活代码”并将其存储(通常在 aspnet_Membership 表上手动添加的字段中或作为 ASP.NET 配置文件的一部分如果您使用的是会员资料),请使用包含用户“激活码”的 URL 发送电子邮件。一旦用户收到这封电子邮件并访问 URL,您就可以从 URL 中获取他们的“激活码”,从 ASP.NET 会员系统中查找帐户并将其IsApproved属性设置回 true。

有关如何实现此目的的详细信息,请查看:

检查 ASP.NET 的成员资格、角色和配置文件 - 第 11 部分

这是关于 ASP.NET 的成员资格、角色和配置文件提供程序的 16 部分系列的第 11 部分,不仅展示了它们如何与所提供的内置功能一起使用,而且还展示了如何实现一些常见的功能为 ASP.NET 系统提供“开箱即用”。(顺便说一句,整个系列都非常值得一读!)

虽然这篇文章是在 ASP.NET MVC 出现之前写的,但实现“通过电子邮件验证”系统的基本机制是相同的,并且很容易转换为对 ASP.NET MVC 更友好。

于 2009-10-14T15:01:06.393 回答
0

正如您所观察到的,支持处理某些类型的行为(如批准帐户、阻止等)。这些只是具有某种默认行为的扩展点(例如在 x 次不成功登录后阻止帐户)。但是,使用电子邮件链接进行帐户验证的机制并不是开箱即用的。你必须实施它。

于 2009-10-14T15:02:40.650 回答