可以将 asp.net 成员控制(PasswordRecovery、CreateUserWizard)配置为在没有 SMTP 服务器的情况下工作吗?

Posted

技术标签:

【中文标题】可以将 asp.net 成员控制(PasswordRecovery、CreateUserWizard)配置为在没有 SMTP 服务器的情况下工作吗?【英文标题】:Can asp.net membership controls (PasswordRecovery, CreateUserWizard) be configured to work without SMTP Server? 【发布时间】:2015-07-15 21:47:33 【问题描述】:

我们的 IT 人员希望从网站层移除 SMTP 访问,并通过向内部服务发出 Web 服务调用来发送来自网站的所有电子邮件,然后该内部服务将直接通过 Exchange 服务器发送电子邮件。

有没有办法配置 PasswordRecovery 和 CreateUserWizard 控件,让我直接发送电子邮件(通过调用服务),而不是使用 web.config 中配置的 SMTP 设置自动发送电子邮件?

如果我可以将控件配置为按原样工作,我不想重写页面并直接使用 API。否则我认为我将不得不取出 PasswordRecovery 和 CreateUserWizard 并用我自己的调用 Membership API 的控件替换它们。

【问题讨论】:

【参考方案1】:

我发现CreateUserWizard 有一个事件OnSendingMail,可以订阅。设置MailMessageEventArgs e.Cancel = true 会导致控件不发送电子邮件,但不会取消向导的工作流。所以我取消了这封邮件并发送到这里,而无需重写任何内容。

PasswordRecovery我不得不重写。刚刚使用会员API获取MembershipUser,调用ResetPassword(),直接用新密码发送邮件。

【讨论】:

以上是关于可以将 asp.net 成员控制(PasswordRecovery、CreateUserWizard)配置为在没有 SMTP 服务器的情况下工作吗?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET:对 ASP.NET 成员资格提供程序的完全控制

使用成员资格提供程序的 ASP.NET MVC 4 Web API 身份验证

ASP.NET 如何控制用户绕过登录直接进入登录后的界面?

当 TextMode=Password 时 ASP.NET 文本框大小不同

membership与成员资格

ASP.NET:如何在 Web 应用程序之间共享资源(成员资格、库)