認証されたユーザーに追加情報を保存して、名前だけでなく、簡単にアクセスできるようにします(たとえば、User.Identity.Idなど)。これは、一意ではないものにすることを計画しているためです。
これまでのところ、カスタムのプリンシパルやIDの実装を検討する必要があることを確認しましたが、その方法がわかりません。私はこの問題に関するドキュメントとチュートリアルを探していましたが、さまざまな場所で関連するものを見つけ、少し混乱していることがわかりました。
ユーザーデータプロパティの認証Cookieにカスタム情報を追加する方法を見てきましたが、単体テストの依存性注入の利点を利用したいと思います。これは、プリンシパルとIDで行うことができます。
自分のプリンシパルまたはIDを実装する場合に考慮する必要がある正確な手順は何ですか?
このシナリオで私ができる最も簡単なことは何でしょうか(IDを追加し、すべてのデフォルトをそのままにしておくだけです)。「デフォルト」には、デフォルトのプロバイダー(メンバーシップ、ロールなど)が含まれます。
他の質問も見ましたが、例のAuthenticateRequestイベントのロールマジックストリングなど、間に穴を残さない回答をいただければ幸いです。代わりに、デフォルトのSqlRoleProviderから現在のユーザーにロールを追加する方法を知る必要があります。いつどこでそれを行うか、そして新しいクラスを他のデフォルトプロバイダーに接続するために何か他のことをする必要があるかどうか。
サンプルのASP.NETMVC2アプリケーション(たとえば、Visual Studio 2010テンプレートから)にアクセスして編集を行い、それを機能させることができれば素晴らしいと思います。
編集:私はここでほとんど迷子になっていることをよりよく示すために質問を編集したので、高レベルの回答でやり遂げることはできません。
PS:ある意味、前に述べたように、プリンシパルではなくIDにIDを含める方が理にかなっているように思われます。