5

Exchange Web サービスを使用して、1 人以上の予定表から予定を検索、作成、更新、および削除しています。このアプリケーションは、マネージャーが従業員の休暇時間を表示したり、空き状況に基づいて予定を割り当てたりするために使用されます。

これをすべて機能させるには、認証されたユーザーの資格情報を Web サービスに送信する必要があります。これまでのところ、これを可能にする 2 つの方法が見つかりました。1) 各ユーザーのユーザー名とパスワードを渡す方法と、2) ユーザーになりすまして DefaultCredentials を使用する方法です。ユーザーの偽装を許可していないため、DefaultCredentials オプションは機能しません。

誰か別の方法を知っていますか?

4

3 に答える 3

6

なりすましの使用を妨げる会社のポリシー制限はありますか? Windows の偽装または Exchange の偽装について言及していますか?

使用できない偽装によっては、代理アクセスが代替手段になる場合があります。

マネージャーが複数のメールボックスを表示できるようにすることが目標である場合は、次のオプションがあります。

(1) 従業員のメールボックスへの委任アクセスをマネージャーに許可します。代理アクセスのレベルに応じて、マネージャーは従業員のメールボックスを表示し、必要に応じて編集することができます。このアプローチには注意点が 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 に答える