私はwcfを初めて使用するので、wcfやユーザー認証のように1つの質問が私を悩ませています。通常、asp.netではユーザー名とパスワードを送信し、サーバー側でデータベースに対して検証されます。ユーザーが有効な場合は、セッションにデータを保存し、すべてのページでセッションをチェックし、セッションが存在し、trueが保存されているかどうかを確認します。そのセッションのそのユーザーについては、ページを実行させます。それ以外の場合は、ユーザーをログインページにリダイレクトします。だから私はwcfでこの種のユーザー認証を実装する方法を知りたいです。初めてユーザーが私のサービスの任意のメソッドを呼び出すときに、クレデンシャルを渡し、クレデンシャルに問題がない場合は、私のサービスの任意のメソッドを呼び出すことができます。wcfでそれを行う方法を教えてください。wcfで、サービスを呼び出す各ユーザーのセッションにデータを保存する方法はありますか?
しかし、ここでは誰もが発信者がユーザー名とパスワードを渡すことに気づきますが、コードはユーザー名とパスワードのように見えます
private static void Main(string[] args)
{
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(
delegate { return true; });
var client = new WcfServiceClient();
GetCredentials();
client.ClientCredentials.UserName.UserName = username;
client.ClientCredentials.UserName.Password = password;
Console.Write(client.GetData(1));
client.Close();
Console.Read();
}
...しかし、なぜ2つのユーザー名とパスワードが来るのかUserName.UserNameそれは非常に醜いように見えます。ユーザーが最初に私のサービスを呼び出したときにDBに対してユーザーを認証し、一度認証されると、次回からユーザーが資格情報を指定せずに私のサービスの任意のメソッドを呼び出すことができるようにするための最良の方法を教えてください。
ユーザーを認証するためのサービスを開発するように言われた人がいます。ユーザーが認証されると、サービスは各wcfクライアントに一意のトークンIDを提供し、クライアントはメソッドを呼び出すときにそのトークンをメッセージヘッダーとして渡します......方法がわかりませんそれを実装するために、そして私でさえそれが最善であるかどうかわからない。だからガイダンスと提案を探しています。ありがとう