Eug*_*ace 4 .net wif asp.net-mvc-4 visual-studio-2012
由Visual Studio 2012中的默认(Internet)模板创建的MVC 4应用程序在运行"身份和访问..."向导后返回RolePrincipal.
该向导与STS(实际或"开发"时间STS)建立信任关系.
如果检查,User对象将是RolePrincipal类型.这样做的结果是User.IsInRole针对本地角色数据库而不是声明集进行解析.

我期待一个ClaimsPrincipal
这是因为新的Oauth支持.它正在使用新的简单成员,最终使用所有提供者.
删除[InitializeSimpleMembership]帐户控制器上的属性是不够的,因为初始化发生在WebMatrix.WebData程序集中:
[assembly: PreApplicationStartMethod(typeof (PreApplicationStartCode), "Start")]
Run Code Online (Sandbox Code Playgroud)
PreApplicationStartCode.Start最终调用:
WebSecurity.PreAppStartInit();
Run Code Online (Sandbox Code Playgroud)
如果检查,则显示:
...
SimpleRoleProvider simpleRoleProvider = WebSecurity.CreateDefaultSimpleRoleProvider("AspNetSqlRoleProvider", currentDefault2);
Roles.Providers.Remove("AspNetSqlRoleProvider");
Roles.Providers.Add((ProviderBase) simpleRoleProvider);
...
Run Code Online (Sandbox Code Playgroud)
禁用所有这些"魔法"的方法是使用web.config中的此设置:
<add key="enableSimpleMembership" value="false"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
886 次 |
| 最近记录: |