2009-07-30 6 views
1

私は私のWCFサービスに認証するために、このコードを使用します。サービス側からのアクセスWCF認証情報に

proxy.ClientCredentials.UserName.UserName = "test"; 
proxy.ClientCredentials.UserName.Password = "pass"; 

は私のWCFサービスコードのメソッド内からこの情報にアクセスする方法はありますか? (私は使用されたパスワードに関心がなく、監査目的のユーザ名が多くなります)

私はメソッドの署名を変更せずにメソッドを呼び出すユーザのIDを特定しようとしています。

答えて

4

あなたはこのように、発信者のユーザー名を取得できます。

ServiceSecurityContext ssc = ServiceSecurityContext.Current; 

if (!ssc.IsAnonymous && ssc.PrimaryIdentity != null) 
{ 
    string userName = ServiceSecurityContext.Current.PrimaryIdentity.Name; 
} 

PrimaryIdentityは、アイデンティティオブジェクトクラスを運ぶことを(にisAuthenticatedなどのような)「ノーマル」IIdentityと持っているすべてのフィールドが含まれます。

マーク

関連する問題