起動時にユーザーがログインする必要があるアプリケーションを構築しています。
認証プロセスは次のとおりです。
- ユーザーがユーザー名/パスワードを入力します。
- クライアントはユーザー名とパスワードをWebサービスに送信します。
- Webサービスは、DBからのハッシュ化されたパスワードを使用してユーザーを認証します。
Webサービスは、次の3つの値のいずれかを含むトークンをクライアントに返します。
1)ユーザー名が無効です。
2)パスワードが無効です。
3)ユーザーが認証されます。
トークンは、クライアントが次の行動方針を決定するために使用されます。
トークンは、クライアントによって行われる後続のすべての呼び出しでサービスに渡されます。ユーザーが認証されていない場合、サービスは呼び出しを拒否します。
トークンは、DataContractであるDTO内にカプセル化されます。トークン自体はDataMemberです。DataMembersでは、プロパティにセッターとゲッターが必要です。これは、クライアントがトークンの値を設定できるようになったことを意味しますが、これは悪いことです。クライアントは、技術的に認証済みとして自分自身にフラグを立てることができるようになりました。
クライアントがトークンの値を変更できないようにするにはどうすればよいですか?ここで私を助けることができるパターンはありますか?