我有一个网页,它正在实现基于 cookie 的 ASPNET 表单身份验证。
一旦用户登录了页面,他就可以使用一个表单来编辑一些信息,该表单是使用部分视图创建的,并作为一个对话框返回给他进行编辑。链接到局部视图的动作装饰如下:
[HttpGet]
[OutputCache(Duration = 0, VaryByParam = "None")]
[Authorize(Roles = "test")]
public ActionResult changeTripInfo(int tripID, bool ovride=false)
{
...
}
我遇到的问题是请求和向用户显示对话框的时间之间的延迟:时间范围在 800 到 1100 毫秒之间,这与表单的复杂性无关。
用 Glimpse 进行调查发现,处理AuthorizeAttribute
(见片段)的时间总计至少 650 毫秒,这让我感到不安。查看 Sql 服务器日志,检查用户角色的调用,正如预期的那样,几乎没有任何内容(持续时间 0)。我怎样才能减少这个时间?
我错过了一些优化吗?
或者我应该假设这是执行属性的正常持续时间(我不能在不同的服务器上运行无偏见的测试)?
-EDIT- 添加了 Sql server 调用日志