解决方法
登录时似乎缓存了id和用户名.
我已经使用过sql Server Profiler并在登录后运行User.Identity.GetUserId();身份系统不对数据库进行查询.
这是在loggin上进行的查询:
exec sp_executesql N'SELECT [UnionAll2].[C2] AS [C1],[UnionAll2].[C3] AS [C2],[UnionAll2].[C4] AS [C3],[UnionAll2].[C5] AS [C4],[UnionAll2].[C6] AS [C5],[UnionAll2].[C7] AS [C6],[UnionAll2].[C8] AS [C7],[UnionAll2].[C9] AS [C8],[UnionAll2].[C10] AS [C9],[UnionAll2].[C11] AS [C10],[UnionAll2].[C12] AS [C11],[UnionAll2].[C13] AS [C12],[UnionAll2].[C14] AS [C13],[UnionAll2].[C1] AS [C14],[UnionAll2].[C15] AS [C15],[UnionAll2].[C16] AS [C16],[UnionAll2].[C17] AS [C17],[UnionAll2].[C18] AS [C18],[UnionAll2].[C19] AS [C19],[UnionAll2].[C20] AS [C20],[UnionAll2].[C21] AS [C21],[UnionAll2].[C22] AS [C22],[UnionAll2].[C23] AS [C23],[UnionAll2].[C24] AS [C24],[UnionAll2].[C25] AS [C25] FROM (SELECT [UnionAll1].[C1] AS [C1],[UnionAll1].[AccessFailedCount] AS [C2],[UnionAll1].[Id] AS [C3],[UnionAll1].[Email] AS [C4],[UnionAll1].[EmailConfirmed] AS [C5],[UnionAll1].[PasswordHash] AS [C6],[UnionAll1].[SecurityStamp] AS [C7],[UnionAll1].[PhoneNumber] AS [C8],[UnionAll1].[PhoneNumberConfirmed] AS [C9],[UnionAll1].[TwoFactorEnabled] AS [C10],[UnionAll1].[LockoutEndDateUtc] AS [C11],[UnionAll1].[LockoutEnabled] AS [C12],[UnionAll1].[AccessFailedCount1] AS [C13],[UnionAll1].[UserName] AS [C14],[UnionAll1].[UserId] AS [C15],[UnionAll1].[RoleId] AS [C16],[UnionAll1].[UserId1] AS [C17],[UnionAll1].[C2] AS [C18],[UnionAll1].[C3] AS [C19],[UnionAll1].[C4] AS [C20],[UnionAll1].[C5] AS [C21],[UnionAll1].[C6] AS [C22],[UnionAll1].[C7] AS [C23],[UnionAll1].[C8] AS [C24],[UnionAll1].[C9] AS [C25] FROM (SELECT CASE WHEN ([Extent2].[UserId] IS NULL) THEN CAST(NULL AS int) ELSE 1 END AS [C1],[Limit1].[AccessFailedCount] AS [AccessFailedCount],[Limit1].[Id] AS [Id],[Limit1].[Email] AS [Email],[Limit1].[EmailConfirmed] AS [EmailConfirmed],[Limit1].[PasswordHash] AS [PasswordHash],[Limit1].[SecurityStamp] AS [SecurityStamp],[Limit1].[PhoneNumber] AS [PhoneNumber],[Limit1].[PhoneNumberConfirmed] AS [PhoneNumberConfirmed],[Limit1].[TwoFactorEnabled] AS [TwoFactorEnabled],[Limit1].[LockoutEndDateUtc] AS [LockoutEndDateUtc],[Limit1].[LockoutEnabled] AS [LockoutEnabled],[Limit1].[AccessFailedCount] AS [AccessFailedCount1],[Limit1].[UserName] AS [UserName],[Extent2].[UserId] AS [UserId],[Extent2].[RoleId] AS [RoleId],[Extent2].[UserId] AS [UserId1],CAST(NULL AS int) AS [C2],CAST(NULL AS varchar(1)) AS [C3],CAST(NULL AS varchar(1)) AS [C4],CAST(NULL AS varchar(1)) AS [C5],CAST(NULL AS varchar(1)) AS [C6],CAST(NULL AS varchar(1)) AS [C7],CAST(NULL AS varchar(1)) AS [C8],CAST(NULL AS varchar(1)) AS [C9] FROM (SELECT TOP (1) [Extent1].[Id] AS [Id],[Extent1].[Email] AS [Email],[Extent1].[EmailConfirmed] AS [EmailConfirmed],[Extent1].[PasswordHash] AS [PasswordHash],[Extent1].[SecurityStamp] AS [SecurityStamp],[Extent1].[PhoneNumber] AS [PhoneNumber],[Extent1].[PhoneNumberConfirmed] AS [PhoneNumberConfirmed],[Extent1].[TwoFactorEnabled] AS [TwoFactorEnabled],[Extent1].[LockoutEndDateUtc] AS [LockoutEndDateUtc],[Extent1].[LockoutEnabled] AS [LockoutEnabled],[Extent1].[AccessFailedCount] AS [AccessFailedCount],[Extent1].[UserName] AS [UserName] FROM [dbo].[AspNetUsers] AS [Extent1] WHERE [Extent1].[Id] = @p__linq__0 ) AS [Limit1] LEFT OUTER JOIN [dbo].[AspNetUserRoles] AS [Extent2] ON [Limit1].[Id] = [Extent2].[UserId] UNION ALL SELECT 2 AS [C1],[Limit2].[AccessFailedCount] AS [AccessFailedCount],[Limit2].[Id] AS [Id],[Limit2].[Email] AS [Email],[Limit2].[EmailConfirmed] AS [EmailConfirmed],[Limit2].[PasswordHash] AS [PasswordHash],[Limit2].[SecurityStamp] AS [SecurityStamp],[Limit2].[PhoneNumber] AS [PhoneNumber],[Limit2].[PhoneNumberConfirmed] AS [PhoneNumberConfirmed],[Limit2].[TwoFactorEnabled] AS [TwoFactorEnabled],[Limit2].[LockoutEndDateUtc] AS [LockoutEndDateUtc],[Limit2].[LockoutEnabled] AS [LockoutEnabled],[Limit2].[AccessFailedCount] AS [AccessFailedCount1],[Limit2].[UserName] AS [UserName],CAST(NULL AS varchar(1)) AS [C2],[Extent4].[Id] AS [Id1],[Extent4].[UserId] AS [UserId],[Extent4].[ClaimType] AS [ClaimType],[Extent4].[ClaimValue] AS [ClaimValue],CAST(NULL AS varchar(1)) AS [C8] FROM (SELECT TOP (1) [Extent3].[Id] AS [Id],[Extent3].[Email] AS [Email],[Extent3].[EmailConfirmed] AS [EmailConfirmed],[Extent3].[PasswordHash] AS [PasswordHash],[Extent3].[SecurityStamp] AS [SecurityStamp],[Extent3].[PhoneNumber] AS [PhoneNumber],[Extent3].[PhoneNumberConfirmed] AS [PhoneNumberConfirmed],[Extent3].[TwoFactorEnabled] AS [TwoFactorEnabled],[Extent3].[LockoutEndDateUtc] AS [LockoutEndDateUtc],[Extent3].[LockoutEnabled] AS [LockoutEnabled],[Extent3].[AccessFailedCount] AS [AccessFailedCount],[Extent3].[UserName] AS [UserName] FROM [dbo].[AspNetUsers] AS [Extent3] WHERE [Extent3].[Id] = @p__linq__0 ) AS [Limit2] INNER JOIN [dbo].[AspNetUserClaims] AS [Extent4] ON [Limit2].[Id] = [Extent4].[UserId]) AS [UnionAll1] UNION ALL SELECT 3 AS [C1],[Limit3].[AccessFailedCount] AS [AccessFailedCount],[Limit3].[Id] AS [Id],[Limit3].[Email] AS [Email],[Limit3].[EmailConfirmed] AS [EmailConfirmed],[Limit3].[PasswordHash] AS [PasswordHash],[Limit3].[SecurityStamp] AS [SecurityStamp],[Limit3].[PhoneNumber] AS [PhoneNumber],[Limit3].[PhoneNumberConfirmed] AS [PhoneNumberConfirmed],[Limit3].[TwoFactorEnabled] AS [TwoFactorEnabled],[Limit3].[LockoutEndDateUtc] AS [LockoutEndDateUtc],[Limit3].[LockoutEnabled] AS [LockoutEnabled],[Limit3].[AccessFailedCount] AS [AccessFailedCount1],[Limit3].[UserName] AS [UserName],CAST(NULL AS int) AS [C5],[Extent6].[LoginProvider] AS [LoginProvider],[Extent6].[ProviderKey] AS [ProviderKey],[Extent6].[UserId] AS [UserId],[Extent6].[UserId] AS [UserId1] FROM (SELECT TOP (1) [Extent5].[Id] AS [Id],[Extent5].[Email] AS [Email],[Extent5].[EmailConfirmed] AS [EmailConfirmed],[Extent5].[PasswordHash] AS [PasswordHash],[Extent5].[SecurityStamp] AS [SecurityStamp],[Extent5].[PhoneNumber] AS [PhoneNumber],[Extent5].[PhoneNumberConfirmed] AS [PhoneNumberConfirmed],[Extent5].[TwoFactorEnabled] AS [TwoFactorEnabled],[Extent5].[LockoutEndDateUtc] AS [LockoutEndDateUtc],[Extent5].[LockoutEnabled] AS [LockoutEnabled],[Extent5].[AccessFailedCount] AS [AccessFailedCount],[Extent5].[UserName] AS [UserName] FROM [dbo].[AspNetUsers] AS [Extent5] WHERE [Extent5].[Id] = @p__linq__0 ) AS [Limit3] INNER JOIN [dbo].[AspNetUserLogins] AS [Extent6] ON [Limit3].[Id] = [Extent6].[UserId]) AS [UnionAll2] ORDER BY [UnionAll2].[C3] ASC,[UnionAll2].[C1] ASC',N'@p__linq__0 nvarchar(4000)',@p__linq__0=N'b73f9738-76ed-48d5-a8fd-cbf23a233fe9'