のために私はUser.IsInRoleは、ワンアクションで失敗したが、別の
if (!this.Roles.Split(',').Any(filterContext.HttpContext.User.IsInRole))
をして、私のMVCアプリケーションへのカスタムAUTHORIZE属性を入れてきたし、本当ならば、それは不正にリダイレクトされますありません。
コントローラのレベルでこの属性をコントローラに配置しました。
1つのアクションは正常に動作し、1つのアクションでは私は不正になります。
ロールシステムにいくつかのバグや問題はありますか?私はログアウトして読み込んだり、いくつかのキャッシュをリフレッシュしたり強制したりすることができますが、私が使用しているシステムはあなたのドメイン資格情報で認証されているので、ログアウトする方法はありません。
私は、アプリケーションプールを再起動してセッションクッキーを削除しようとしましたが、何も機能しませんでした。
この特定の問題を経験したことがありましたか、キャッシュに関する問題が発生していると思われる人はいましたか?
ETA:システム上の別のユーザーがコントローラに必要な役割を果たし、両方のアクションが彼にとってうまく機能します。だから、おそらく私のユーザーはどうにかして盗聴されます。これはUAT上でローカルマシン上で実行するよりも少し難しい(これはうまくいく)。
ETA2:これはキャッシングの問題で、URLには?1 = 1というクエリ文字列が付いているので、動作します。私はキャッシュを無効にすることはできません。これは、今後人に役割を割り当てるときに問題になる可能性があります。
かなり確かです(2)セキュリティトークンに対して単にURLをキャッシュしているだけです。これはMVCの役割システムの内部にあるため、これ以上コードを投稿することはできません。私は、この問題を解決するためにユーザーを無効にして再検証する方法を見つける必要があると思います。私はアプリプールを無効にしてもクリアされないので、キャッシュがどこに保存されているか知りたいのです。レガシーコードに私は行く... – NibblyPig