私は現在、紺碧のADログインとASP.NET MVCで私のウェブサイトを終了しています。Asp.net MVC紺碧の広告グループID
このウェブサイトでは、一部のページには管理者のみがアクセスできます。このために、私はtestAdmins
という名前の新しいグループを作り、ユーザーがページにアクセスできる場合、私は確認したときに、私はこれを使用します。このグループにされ
ClaimsPrincipal principal = User as ClaimsPrincipal;
if (principal.Claims.Any(x => x.Type == "groups" && x.Value == "id of testAdmins")){ //code }
をそしてそれは私のユーザー魔女と罰金働いています。
しかし、testAdmins
のIDを実際の管理者グループの値(Admins
)に変更すると、サイトが展開されて魔法使いが使用されているときに使用されます。サーバーに何も表示されません40秒間、その後、私はこのメッセージを得た:
タイプの例外「System.Web.HttpExceptionは」 のSystem.Web.dllに発生したが、ユーザーコード
追加情報で処理されませんでしたができません。 SQL Serverデータベースに接続します。
誰かが私に何が起こっているか説明できますか?事前に
おかげ
PS:私は私のユーザーはそれが速く動作しますが、そうでないとき、それは2分かかり、エラーメッセージを行うグループである...など誰場合は、いくつかのより多くのテストを...作っどのような問題が起こっているのかわからない、Azure Active Directoryの特別なグループにいるユーザーとは異なるアクセスをする方法がありましたか?
本当に?あなたは本当ですか?なぜなら、もし私がグループに入っていればうまくいくからね。プリンシパル.Claims.Any(x => x.Type == "groups" && x.Value = = "testAdminsのID") 'が大きすぎますか? – MrPixel6
ClaimsPricipalのClaimsプロパティは、OpenID Connect Owinミドルウェアによって初期化されるCollectionプロパティです。このプロパティをクエリすると、データベースにアクセスすることはできません。そして、それはタイムアウトを引き起こすほど大きくはありません。 ClaimsPrincipalとそのClaimsプロパティ、mrPixelに関するドキュメントを参照してください。また、JustDecompileを実行してClaimsPrincipal型を調べ、自分の目でDBへの呼び出しがないことを確認することもできます。 – astaykov
ありがとう助けてくれてありがとう! – MrPixel6