0

我的ASP.net通用成員身份的默認角色提供程序不會創建緩存角色的Cookie。任何想法ASP.Net Universal Membership RoleProvider不爲角色緩存創建Cookie

<roleManager enabled="true" createPersistentCookie="true" cacheRolesInCookie="true" cookieTimeout="30" cookiePath="/" cookieRequireSSL="false" cookieSlidingExpiration="true" cookieProtection="All" defaultProvider="DefaultRoleProvider" > 
    <providers> 
    <clear /> 
    <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/" /> 
    </providers> 
</roleManager> 

我正在使用MVC與AuthorizeAttributes和數據庫每次檢查角色級別時被擊中。 cookie .asproles似乎並未創建。

MiniProfiler顯示

ExecuteStoreCommands Execute GetResults System.Collections.Generic.IEnumerable<T>.GetEnumerator GetRolesNamesForUser GetRolesForUser 
DECLARE @appName nvarchar = N'/', 
     @userName nvarchar = N'TestUser' 

SELECT 
[Project1].[RoleName] AS [RoleName] 
FROM (SELECT 
     [Extent2].[RoleName] AS [RoleName] 
     FROM [dbo].[Users] AS [Extent1] 
     CROSS JOIN [dbo].[Roles] AS [Extent2] 
     INNER JOIN [dbo].[Applications] AS [Extent3] ON [Extent3].[ApplicationId] = [Extent2].[ApplicationId] 
     INNER JOIN [dbo].[UsersInRoles] AS [Extent4] ON ([Extent1].[UserId] = [Extent4].[UserId]) AND ([Extent4].[RoleId] = [Extent2].[RoleId]) 
     WHERE ((LOWER([Extent3].[ApplicationName])) = @appName) AND ((LOWER([Extent1].[UserName])) = @userName) 
) AS [Project1] 
ORDER BY [Project1].[RoleName] ASC 

感謝

回答

0

它可以實時的服務器上,這樣很奇怪。猜猜它已經解決了。

+0

確實很奇怪。對我來說,它可以在開發機器上工作,但不能在服務器上工作,因此不會創建cookie。 – 2014-07-30 16:39:49