1

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

4

4 回答 4

1

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

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

有关更多详细信息,请参阅原始问题和答案

于 2009-01-05T14:11:21.440 回答
0

我过去这样做的方法是使用 LogonUser。下面的链接提供了一些有关如何进行此操作的指导。

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

http://www.guidanceshare.com/wiki/ASP.NET_2.0_Security_Guidelines_-_Impersonation/Delegation

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

于 2009-01-05T12:43:02.257 回答
0

您可以按照上述方式进行操作,但在这种情况下,在设置过程中仅修改 web.config 有什么问题?

于 2009-01-05T13:36:15.067 回答
0

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

于 2009-01-07T00:42:37.843 回答