1

我有一个用户填写的注册表单,一旦表单填写完毕,注册将被推迟,直到用户收到一封电子邮件以检查他的电子邮件是否正常,然后当他回复电子邮件时,注册就完全进行了。

我也希望这个过程是自动的,不需要用户输入任何数字等,只需要他点击电子邮件确认,在我这边也是自动的。

如果可能的话,我希望该过程也可用于注册过程之外的其他任务。

我是否需要对生成的 123456 进行全程检查/123456,还是有更好的方法,一个组件,nuget 可以完成这项工作?你的经验回报会有所帮助

谢谢

4

2 回答 2

1

你似乎走在正确的轨道上。

我经常做类似的事情。它不是通用的,因为我不需要它,但你可以很容易地改变它。

用户注册后,我会发送一封激活电子邮件,其中包含一个链接,单击该链接会导航到诸如http://domain/member/activate/idid 是 GUID 之类的内容。这就是我所需要的。我查找会员 ID 并激活它。有人猜测新成员的 id 的可能性很小,即使他们猜到了,也离火车粉碎远。

据我所知,您需要更通用和更安全的东西。您始终可以创建一些与用户一起存储的密钥(如新的 GUID),然后激活调用:http://domain/member/activate/id?key={the guid}. 你甚至可以加密密钥。但这取决于你。

对于可以重复使用且更通用的东西,您可以创建一个包含激活 id 列表的激活组件。但是要激活特定类型的实体(例如用户注册或表单验证),您需要有一种在后端执行该操作的方法。例如,当您在http://domain/activation/activate/id内部调用时,会查找 id 并获取类型。当然,激活请求是在您的用户注册时创建的。您可能希望存储一些到期/超时,因为用户可能永远不会激活。

对于每种类型,您都可以在相关控制器上具有激活机制:member/activate/keyformvalidation/activate/key. 因此,当您的激活控制器收到激活请求时,它会根据类型配置一个路由列表,并导航到相关路由以执行“实际”激活。

另一种选择是让进程内组件执行激活,例如:一个由orIActivator实现的接口,然后有一个实现,它根据类型(.NET 类型或您提供的字符串类型)为您提供相关的提供者 --- 就这样给你)。MemberActivatorFormValdationActivatorIActivatorProvider

如果您愿意,您甚至可以将其传递ActivationRequestCommand给服务总线端点。

所以你有很多选择。高温高压

于 2012-04-19T04:42:21.013 回答
0

如果您是开发人员,我建议您至少尝试从代码开始......然后再次询问您是否遇到困难,提供您所做的示例。

您要做的基本上是使用发布到页面的临时 url 来完成注册......

于 2012-04-19T01:11:22.170 回答