Asp.net mvc 3 asp.net mvc 3-发送电子邮件并获取验证任务的返回(注册、表单验证…)

Asp.net mvc 3 asp.net mvc 3-发送电子邮件并获取验证任务的返回(注册、表单验证…),asp.net-mvc-3,email-validation,Asp.net Mvc 3,Email Validation,我有一个用户填写的注册表格,一旦填写了表格,注册将推迟到用户收到电子邮件,以检查他的电子邮件是否正常,然后当他回复电子邮件时,注册将完全进行 我也希望这个过程是自动的,不需要用户输入任何数字等,只需要他点击电子邮件确认,并在我这边也自动 如果可能的话,我希望该过程也可以用于注册过程以外的其他任务 我是否需要对生成的123456进行全方位检查/123456,或者是否有更好的方法,组件、nuget可以完成这项工作?你回来会有帮助的 谢谢如果你是一名开发人员,我建议你至少从代码开始。。。然后再问一次,

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

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

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

我是否需要对生成的123456进行全方位检查/123456,或者是否有更好的方法,组件、nuget可以完成这项工作?你回来会有帮助的


谢谢

如果你是一名开发人员,我建议你至少从代码开始。。。然后再问一次,如果你在提供你所做工作的样本时遇到了困难


你要做的基本上是使用一个临时url,发布到一个页面来完成注册

如果你是一名开发人员,我建议你至少从代码开始。。。然后再问一次,如果你在提供你所做工作的样本时遇到了困难


你要做的基本上是使用一个临时url,发布到一个页面来完成注册

你似乎在正确的轨道上

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

用户注册后,我会发送一封激活电子邮件,其中包含一个链接,单击该链接可导航到
http://domain/member/activate/id
其中id是GUID。这就是我所需要的。我查找成员id并激活它。有人猜到新会员id的可能性很小,即使猜到了,也离撞车相去甚远

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

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

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

另一种选择是让进程内组件执行激活,例如:由
MemberActivator
FormValdationActivator实现的
IActivator
接口,然后让
IActivatorProvider
实现根据类型为您提供相关的提供者(.NET类型或字符串类型—由您自己决定)

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


所以你有很多选择。HTH

你似乎在正确的轨道上

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

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

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

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

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

另一种选择是让进程内组件执行激活,例如:由
MemberActivator
FormValdationActivator实现的
IActivator
接口,然后让
IActivatorProvider
实现根据类型为您提供相关的提供者(.NET类型或字符串类型—由您自己决定)

您甚至可以传递
激活请求