2012-06-03 76 views
1

我有一個正在實施基於cookie的ASPNET表單身份驗證的網頁。ASP NET形式授權:如何減少持續時間?

一旦用戶登錄了該頁面,他就可以使用使用partialview創建的表單編輯一些信息,並將其作爲用於編輯的對話框返回給他。 連接到局部視圖裝飾作爲動作如下:

[HttpGet] 
[OutputCache(Duration = 0, VaryByParam = "None")] 
[Authorize(Roles = "test")] 
public ActionResult changeTripInfo(int tripID, bool ovride=false) 
{ 
    ... 
} 

我遇到的問題是該請求,並當所述對話框顯示給用戶的時間之間的延遲:800和之間的時間範圍內1100毫秒這是不正確的形式的複雜性。

使用Glimpse調查發現處理AuthorizeAttribute(請參見snip)的時間總計至少爲650毫秒,這讓我很困擾。 查看Sql服務器日誌,如預期的那樣,檢查用戶角色的調用幾乎沒有任何操作(持續時間爲0)。 我該如何縮短這個時間?

我錯過了一些優化?
或者我應該假設這是執行屬性的正常持續時間(我不能在不同服務器上運行無偏差測試)?

timeline report CNC中 添加了SQL Server的通話記錄

Sql server log

回答

1

這是您的形式,並且持有憑證的SQL數據庫之間的認證時間?

+0

我不會這麼說......我已經附加了SQL Server profiler轉儲,在這裏你可以看到兩個調用'GetRolesForUser'(正如我檢查兩個角色)和第三個調用獲取數據表格(持續時間爲6毫秒的表格)。 – eddo