I'm developing an ASP.NET MVC3 website and I'm using the Microsoft ASP.NET Universal Providers. Web.config :

<connectionStrings>
<add name="MyContext" connectionString="data source=tcp:***.database.windows.net,1433;Initial Catalog=***;User Id=***;Password=***;Trusted_Connection=False;Encrypt=True;Connection Timeout=30" providerName="System.Data.SqlClient" />
</connectionStrings>
...
<roleManager defaultProvider="DefaultRoleProvider" enabled="true">
  <providers>
    <clear />
    <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider" connectionStringName="MyContext" applicationName="/" />
  </providers>
</roleManager>

The connectionStrings is ok in Azure. Aspnet tables and storedprocedures I added by using the query script. Data in tables added by migrations. I checked it in management portal. I can get profile membership and profile data, but the the code below returns empty list.

var userName = User.Identity.Name;
var userRoles = Roles.GetRolesForUser(userName).ToList();

userName is correct and table aspnet_UsersInRoles contains correct data too. There is no exceptions on page. Why the userRoles is empty?

有帮助吗?

解决方案

I fix this problem by creating the custom provider, which is inherited from SqlRoleProvider.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top