0

MVCアプリとカスタムロジックでWIFとクレームベースのセキュリティを使用して、認証後に適切なクレームを含むClaimsPrincipalを作成しています。ロールや名前などの標準的なクレームをプリンシパルに割り当てますが、該当する場合はカスタムクレームも割り当てます。

たとえば、URIを使用して、標準化された役割と名前のクレームに基づいてカスタムクレームをモデル化しました。

新しいクレーム( "http://schemas.acme.com/2012/04/identity/claims/create"、 "http://schemas.acme.com/2012/04/identity/resources/customer")

すべてが非常にうまく機能しています。SessionAuthenticationModuleを使用して、ユーザーセッションをCookieに保存し、リクエストごとに再水和します。

今日、誰かが同じユーザータイプでログインした後、カスタムクレームがCookieから逆シリアル化されていないことに気付きました。標準のクレーム(名前/役割)は存在しますが、カスタムのクレームは存在しません。

他の誰かがこれを見たことがありますか、またはこれが起こっている理由を知っていますか?

4

1 に答える 1

0

参照によって消えていたクレームを追加していたことがわかりました。静的クレームが事前定義されたクラスがあり、必要に応じてClaimsPrincipalに追加します。この方法で追加したクレームは、後でそのタイプの別のユーザーがログインしたときに削除されました。私の解決策は、静的プロパティをKeyValuePairsに変更し、ユーザーごとに新しいクレームを作成することでした。

于 2012-06-12T14:12:54.470 に答える