我正在开发一个 ASP.NET MVC3 网站,并且正在使用 Microsoft ASP.NET Universal Providers。网络配置:
<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>
Azure 中的 connectionStrings 没问题。我使用查询脚本添加的 Aspnet 表和存储过程。迁移添加的表中的数据。我在管理门户中检查了它。我可以获得个人资料成员资格和个人资料数据,但下面的代码返回空列表。
var userName = User.Identity.Name;
var userRoles = Roles.GetRolesForUser(userName).ToList();
userName 是正确的,并且表 aspnet_UsersInRoles 也包含正确的数据。页面上没有例外。为什么 userRoles 是空的?