可以将 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 身份验证