2008-10-21 46 views
3

我正在使用ASP.NET成员资格和登录控件来处理简单的门户应用程序。我想使用PasswordRecovery控件发送包含忘记密码的电子邮件,但是我的门户需要本地化。我有一个现有的内容管理系统,我将本地化的字符串拉出来,我想将PasswordRecovery控件链接到该系统。使用本地化内容的ASP.NET PasswordRecovery控件

但是,看来PasswordRecovery控件将只接受电子邮件正文.txt文件...属性是PasswordRecovery1.MailDefinition.BodyFileName

我不想使用磁盘上的文件,我想要在我的CMS中使用本地化的内容。

有没有办法做到这一点?我想到,我可能能够使用SendingMail事件通过正常的System.Net命名空间发送我的OWN电子邮件,但这看起来有些尴尬......

有什么想法吗?

感谢, 最大

回答

4

尝试处理PasswordRecovery控件的SendingMail事件。在这种情况下,设置e.Message.Body和e.Message。将您的本地化文本的主题属性。

+0

太棒了!...谢谢,我认为这样会很好! – 2008-10-29 16:19:05

0

通过谷歌搜索 “BodyFileName本土化” 发现这一点:

http://forums.asp.net/t/1118242.aspx

酒店仅绑定到 页面的localresource文件的关键。 页面的本地资源文件是文件 ,位于您的页面的 目录中的一个名为 app_localresources的子目录中。只需使用visual studio的 “工具 - >创建本地资源” 选项,在设计视图中为它创建了 。

在该文件中,创建一个字符串 键/值对的东西,如

名称:myBodyFileName

值:myDefaultBodyFile.txt

那么这个绑定到登录的BodyFileName 财产用 控制

'>

然后只需为其他文化创建本地资源文件 并将 资源文件中的键/值对映射到其他文本文件。

顺便说一句,如果你使用Visual Studio的 创建资源文件给你, 然后绑定可能已被automatticaly做 你。只要搜索 一个 “MyChangePasswordControlResource1.BodyFileName” 键在资源文件或 类似的东西。

问候,豪尔赫

+0

但是,这仍然需要在磁盘上创建多个文件。我想用我的CMS以编程方式加载电子邮件正文。 本质上我想要一个机制,我可以通过字符串设置电子邮件正文内容,例如您设置MailMessage对象的Body字段的方式。 – 2008-10-21 18:28:45