我正在编写一个与Exchange一起使用的Web应用程序,因此需要模拟一个具有Exchange管理权限的帐户。此帐户由用户在安装时指定。模拟使用此帐户的最佳方式是什么,显然将其硬编码到web.config中将无法正常工作,因为它需要能够更改,但我不确定最好的方法。 另外,我实际上只需要作为1个类的管理用户运行,是否可以仅模拟某些方法?

有帮助吗?

解决方案

我发布了一个关于使用模拟访问网络文件共享的答案,但它也适用于您。它包含c#类的源代码,可用于管理模拟的开始/结束,并可由任何类或方法使用。

提供的源确实假设您将用户名和密码存储在web.config中。

请参阅原始问题与解答更多细节。

其他提示

我过去这样做的方法是使用LogonUser。以下链接提供了有关如何解决此问题的一些指导。

http://blogs.msdn.com/shawnfa /archive/2005/03/21/400088.aspx

http://www.guidanceshare.com/wiki/ASP .NET_2.0_Security_Guidelines _-_模拟/委派

您可能还需要考虑是否可以使用Exchange模拟并让您的应用程序在固定标识下运行通过Exchange Web服务模拟Exchange

您可以按上述方式执行此操作,但在此方案中,在安装过程中仅修改web.config有什么问题?

除了其他人注意到的LogonUser或WindowsImpersonationContext类之外,您还可以考虑分离出特权代码。例如,作为Enterprise Services对象运行(在COM +下运行)。这将允许您让操作系统管理凭据,并且您拥有围绕特权代码的内置信任边界 当然,您需要对谁可以调用此对象实施限制,但这很容易配置......

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top