1

VBA コードの Service Moniker を使用して、MS Excel から呼び出される WCF サービスを作成する必要があります。これまでのところ、その部分は私が理解しました。

また、偽装が機能しているため、Web メソッドから現在のユーザーを返す場合、IIS\DefaultAppPool または IIS が実行されているものではなく、自分のユーザー名が返されます...

だからここに私の問題があります。私は、PWD オブジェクトを作成し、いくつかのパラメーターを設定してから、Getpassword という名前のメソッドを呼び出すサードパーティの dll "Cyber​​Ark Password Management" を持っています。これでメソッドを呼び出すことができますが、常に認証エラーが発生します。実行している Cyber​​Ark エージェントのログを掘り下げると、偽装を使用しているにもかかわらず、dll メソッドがまだ IIS\DefaultAppPool として呼び出されているようです。

ここにいくつかのスニペットがあります...

メソッド レベルで偽装がオンになっている

[OperationBehavior(Impersonation = ImpersonationOption.Required)]

このメソッドを呼び出すと、期待どおりにドメインとユーザー名が返されます

WindowsIdentity.GetCurrent().Name

しかし、この行は IIS\DefaultAppPool として呼び出されています

password = PasswordSDK.GetPassword(passRequest);

Annotaion を使用するのではなく、コードで偽装を試みました。また、bolck を使用して偽装オブジェクトを試しましたが、何も機能しないようです。

  1. セキュリティ上の理由から、DLL は呼び出し元になりすますことを許可していません。

  2. セキュリティ上の理由から、.NET フレームワークがこれを再度許可していない可能性があります

  3. 私には手がかりがなく、助けが欲しいです:-)

4

1 に答える 1

0

IIS を使用してホストする代わりに、アプリケーションを自己ホストすることができます。次に、サービスは、現在のユーザーとして既に実行されているプロセスで実行されます。

(これがオプションの場合)

于 2012-10-10T18:54:29.713 に答える