0

ASP.Net でホストされている WCF 4.0 サービスを適切に構成して、サービスの特定のメソッドに対してのみ呼び出し元の資格情報を偽装し、他のメソッドへの匿名アクセスを許可する方法について、[比較的] 簡単なウォークスルーを教えてもらえますか?

私はこれについて MSDN で多くのことを読んできましたが、読めば読むほど混乱します。多分私はただの劣等生ですが、これは本来よりもはるかに難しいようです:-(

SE に関する投稿を確認しましたが、エンド ツー エンドのサンプルやチュートリアルを示しているものはありません。CodePlex には WCF ガイダンス ドキュメントがありますが、どうしようもなく古くなっているようで、2008 年以降更新されていません。

ここで何か助けていただければ幸いです。

4

1 に答える 1

1

これは、 OperationBehaviorAttribute.Impersonationプロパティを介して実行できます。

[ServiceContract]
interface ISelectiveImpersonationExample
{
    [OperationContract]
    void ThisUsesImpersonation();

    [OperationContract]
    void ThisDoesNotUseImpersonation();
}


// Implementation
class SelectiveImpersonationExampleImpl : ISelectiveImpersonationExample
{
    [OperationBehavior(Impersonation=ImpersonationOption.Required)]
    public void ThisUsesImpersonation()
    {
        // ...
    }

    [OperationBehavior(Impersonation=ImpersonationOption.NotAllowed)]
    public void ThisDoesNotUseImpersonation()
    {
        // ...
    }
}

サービスの動作のImpersonateCallForAllOperations値を true に設定していないことを確認してください。その場合、ThisDoesNotUseImpersonation関数はInvalidOperationExceptionをスローします。

ここでは理論に基づいており、実際に実際に行ったことはありません。うまくいかない場合はお知らせください。

于 2010-07-28T21:49:45.273 に答える