我编写了一个使用Microsoft.Exchange.WebServices(EWS)访问电子邮件帐户的Windows服务。目前,电子邮件帐户的凭据在Windows服务的源代码中进行了硬编码。我的问题是,就电子邮件的凭据而言,这里的最佳做法是什么?它应该保留原样,在Windows服务的源代码中进行硬编码吗?如果我们决定更改电子邮件的密码,那么我们必须更改服务的源代码。任何有关最佳实践的见解都将受到赞赏。
答案 0 :(得分:0)
我最近开发了类似的东西。我们使用模仿ews。因此,您可以使用您的服务运行的凭据。 这就是它的工作原理...... 您可以创建普通域用户并为该用户设置模拟权限。 ---对不起,我是用手机写的,否则我会把链接发到msdn-site,但我相信你的搜索引擎会找到那个网站--- 比你设置service.UseDefaultCredentials = true和service.ImpersonatedUserID = new ImpersonationId(type.smtp,“the.mailadress.of@your.mailbox.com”) 因此,如果您将我的代码更正为真实语法,则无需存储任何密码。目标邮箱可以来自您喜欢的任何类型的配置。 希望这对你有所帮助。
答案 1 :(得分:0)
如果您想使用一个帐户访问另一个帐户的详细信息,则假冒是好的;但这不会解决我认为你有的问题,因为你需要提供模仿的证书,而你却遇到同样的问题。
您的服务是否通过EWS访问数据?如果是这样,请使用它。 如果没有,请使用项目属性为用户名,密码和域定义应用程序设置;然后调整app.config
您可以使用以下命令在运行时访问这些设置:
(C#)Properties.Settings.Default.InterAcctDirectory
;要么
(VB)My.Settings