5

我正在使用 Exchange Web 服务从一个或多个人的日历中查找、创建、更新和删除约会。经理将使用该应用程序查看员工的休假时间,并根据可用性分配约会。

为了使这一切正常工作,必须将经过身份验证的用户凭据发送到 Web 服务。到目前为止,我发现有两种方法可以实现这一点:1)传入每个用户的用户名和密码,2)模拟用户使用 DefaultCredentials。DefaultCredentials 选项对我们不起作用,因为我们不允许模拟用户。

有谁知道另一种方式?

4

3 回答 3

6

是否有公司政策限制阻止您使用假冒?您指的是 Windows 模拟还是 Exchange 模拟?

根据您不能使用的模拟,替代方法可能是委托访问。

如果目标是让经理查看多个邮箱,这里有一些选项:

(1) 将员工邮箱的代理访问权限授予经理。根据代表访问级别,这将允许经理查看员工邮箱并根据需要进行编辑。关于这种方法有一个警告,取决于授予访问权限的内容/方式,代表(员工)可以删除访问权限,并阻止经理查看他们的日历。

对于使用委托访问的身份验证,假设使用 Web 服务的应用程序在管理器的上下文中运行,您应该能够使用 DefaultCredentials。

(2) 创建一个具有模拟权限或委托对员工邮箱的访问权限的服务帐户。然后以服务帐户登录。

同样,这里有一些您可能会觉得有用的链接...

于 2008-12-20T08:51:10.060 回答
2

如果我理解正确,经理将使用该应用程序并以他自己的身份向 EWS 进行身份验证。然后,由于权限不足,EWS 将无法更新其他用户的邮箱。

让管理员访问每个用户的邮箱怎么样?

(或者我错过了问题的很大一部分?)

于 2008-10-10T12:14:14.507 回答
1

如果用户要登录到他们自己的机器上,并且这些凭据很可能在凭据缓存中可用,则可以从从那里获得的 ICredentials 对象构造一个 WebCredential 对象:

public static ExchangeService GetService()
{
    var webCredentials = new WebCredentials(CredentialCache.DefaultNetworkCredentials);

    var service = new ExchangeService(ExchangeVersion);
    service.AutodiscoverUrl(Properties.Settings.Default.SmptAccountName);
    service.Credentials = credentials;

    return service;   
}
于 2011-06-03T07:11:21.187 回答