私は MVC を学習しており、セッションレス認証を検討しています (サーバーの負荷/スケーラビリティを軽減するため、また Azure Web サイトでセッションをホストするために AppFabric キャッシュが高価であるため)。
ユーザー情報は SQL に保存され、各ユーザーには部門、ランク、役割、権限があります (役割/部門にも権限があります)。私が本当に保存する必要があるのは、ユーザーIDを安全なCookieに保存することだけであり、有効期限が切れていない場合は、global.asaxの各リクエストで残りの情報を取得すると考えていました. http://eversystems.eu/Document/15/Sessionless_Authentication_with_Encrypted_Tokensなどの方法で保護します
最終的に実現したいのは、ビューモデルにカスタム フィールドで注釈を付ける機能です。
[Authorize(Roles="Admin")] [Authorize(Dept="IT")] [Authorize(Rank="Manager")]
またはHtmlで言う
@if(User.IsInDept("IT")
また
@if(User.HasRank("Manager"))
FormsAthenticationTicket
and Membership Provider / Roles
etc and IPricipal
and etcを拡張することを検討しましたが、IIdentity
目的を達成するためにそれらすべてをどのように変更するかを正確に理解することは困難です。私が見た例には、私が望んでいない多くの余分な肥大化がありますが、私が見つけた最良の例は、@Ahmad Abu Raddad here ASP.NET MVC - Set custom IIdentity or IPrincipal によるものです
誰かが私が正しい方向に向かっているかどうかを指摘したり、代替案を提案したりできれば幸いです。