Cookie ベースの ASPNET フォーム認証を実装している Web ページがあります。
ユーザーがページにログインすると、部分ビューを使用して作成され、編集用のダイアログとして返されるフォームを使用して、一部の情報を編集できます。部分ビューにリンクされたアクションは、次のように装飾されます。
[HttpGet]
[OutputCache(Duration = 0, VaryByParam = "None")]
[Authorize(Roles = "test")]
public ActionResult changeTripInfo(int tripID, bool ovride=false)
{
...
}
私が経験している問題は、リクエストとダイアログがユーザーに表示される時間の間の待ち時間です: フォームの複雑さによって正当化されない時間範囲は 800 から 1100 ミリ秒です。
Glimpse で調査すると、AuthorizeAttribute
(抜粋を参照) を処理する時間が合計で少なくとも 650 ミリ秒かかることがわかり、これは私を悩ませています。Sql サーバー ログを見ると、ユーザー ロールをチェックする呼び出しは、予想どおり、事実上何も実行されません (期間 0)。この時間を短縮するにはどうすればよいですか?
最適化が不足していますか?
それとも、これが属性を実行する通常の期間であると想定する必要がありますか (別のサーバーで偏りのないテストを実行することはできません)。
-編集- Sql サーバーのコールログを追加