これが実際に起こっていることなのかどうかはわかりませんが、MiniProfiler でアプリケーションの一部を確認したところ、SimpleMembership と Roles がサーバーに対して重複した SQL クエリを作成していることに気付きました。
ミニプロファイラーの結果は次のとおりです。
http://localhost:49422/ActionMatrix/ActionMatrix?Length=0&D=23%2F03%2F2013&ProTyp=&ActTyp=&X-Requested-With=XMLHttpRequest
T+3.7 ms
Scalar
0.3 ms
QueryValue QueryValue GetUserId GetRolesForUser
SELECT [UID] FROM [Usernames] WHERE (UPPER([User]) = @0)
http://localhost:49422/ActionMatrix/ActionMatrix?Length=0&D=23%2F03%2F2013&ProTyp=&ActTyp=&X-Requested-With=XMLHttpRequest
T+4.4 ms
Reader
0.2 ms
MoveNext Query Query GetRolesForUser
SELECT r.RoleName FROM webpages_UsersInRoles u, webpages_Roles r Where (u.UserId = @0 and u.RoleId = r.RoleId) GROUP BY RoleName
http://localhost:49422/ActionMatrix/ActionMatrix?Length=0&D=23%2F03%2F2013&ProTyp=&ActTyp=&X-Requested-With=XMLHttpRequest
T+5.1 ms
DUPLICATE Scalar
0.2 ms
QueryValue QueryValue GetUserId GetRolesForUser MoveNext HasClaim IsInRole
SELECT [UID] FROM [Usernames] WHERE (UPPER([User]) = @0)
http://localhost:49422/ActionMatrix/ActionMatrix?Length=0&D=23%2F03%2F2013&ProTyp=&ActTyp=&X-Requested-With=XMLHttpRequest
T+5.7 ms
DUPLICATE Reader
0.1 ms
MoveNext Query Query GetRolesForUser MoveNext HasClaim IsInRole
SELECT r.RoleName FROM webpages_UsersInRoles u, webpages_Roles r Where (u.UserId = @0 and u.RoleId = r.RoleId) GROUP BY RoleName
多分それは2回チェックしますか?それは間違いなくページの読み込みを遅くします。グローバル フィルターはなく、1 つの「承認」のみを通過します。何か案は?