WCFセキュリティにカスタムのユーザー名とパスワードの検証を使用しています。今私は要求の間にユーザー名を保存して、後で呼び出されるメソッドにアクセスできるようにしたいと思います。それ、どうやったら出来るの?WCFリクエストにデータを格納する場所
私の問題を記述するためのいくつかのサンプルコード:今すぐ
public class CustomUserValidator : UserNamePasswordValidator
{
public override void Validate(string username, string password)
{
if (username == "aaa" && password == "bbb")
{
// store username where i can get it in method called later.
return;
}
throw new SecurityTokenException("Unknown Username or Password");
}
}
呼び出されるメソッド:
public void WebServiceMethod()
{
Database.User.Single(c => c.Username == /* username from above */);
}
BR
アンドレアス
最も簡単な方法は静的なユーザー名プロパティに格納することです。より良い方法は、カスタムWCF動作を記述することです。 – daryal
@daryalはすべてのレベルで悪いです。 a:WCFはマルチスレッドであり、b:WCFは異なる点で異なるスレッドを使用できます(スレッド静的には信頼できません) –
@MarcGravellあなたはすべてのレベルで正しくあります:)しかし、この質問に答えるには、インスタンスモードとコンカレントモードが提供される。それで私は行動を書くことを提案したのです。 – daryal