2011-06-30 2 views
1

WCF4 REST APIのAPIキー認証ソリューションを実装したいと思います。WCF4 REST APIkey質問 - ServiceAuthorizationManagerからサービスに情報を渡す

私はクラスを作成してServiceAuthorizationManagerから派生させ、CheckAccessCoreメソッドをオーバーライドする必要があることを知っています。私が理解しているすべて。

しかし、私がCheckAccessCoreからやりたいことは、CheckAccessCoreからサービス実装クラスへの内部情報を渡すことです。 「ApiKeyID、権利、フラグ、その他の詳細」のような情報で、ApiKey認証を行う際に調べました。

ドメインロジックを呼び出すときに私のサービスが内部的に内部ApiKeyIDを使用できるようにします。

は私がであるあなたがオブジェクトに沿って渡すことができます

operationContext.ServiceSecurityContext.AuthorizationContext.Properties["Principal"] = p; 

または

System.Threading.Thread.CurrentPrincipal = principal; 
HttpContext.Current.User = principal; 

及びその他の方法....

+0

私はWCF Data Servicesを使用している以外は同じ質問があります。あなたはこれに対して良い答えを見つけましたか? –

答えて

0

別の方法のように、これを行うためのさまざまな方法を見てきましたRequestMessageオブジェクトのPropertiesコレクションにオブジェクトを追加します。

IssuedToken Token = new IssuedToken() 
operationContext.RequestContext.RequestMessage.Properties.Add("NameOfObj",Token); 
+0

これは設定方法ですが、どうやって取得しますか?私が知る限り、WebOperationContext.Current.IncomingRequestにはプロパティはありません。ヘッダーのみ。 –

+0

私は、operationContextをRESTで使用できるとは思わない。 WebOperationContextはHTTPヘッダーのみを持ちます。 –

+0

私はREST WCFを構築し、上記の手法を使用してServiceAuthorizationManagerから他のコードにデータを渡しました。 – Victor

関連する問題