RoleProvider不能在服务器上使用自定义IIdentity和IPrincipal

age*_*t47 4 iprincipal httpmodule iidentity roleprovider asp.net-mvc-3

我使用的是定制的IIdentity,并IPrincipal在我ASP.NET MVC通过应用EF 4.3作为expalined 这里(并按照接受的答案的解决方案).另外,我有一个习惯RoleProvider.在本地(使用IIS Express),它的工作原理.但现在,当我在真实主机上传应用程序时,似乎所有用户都在"admin"角色中!例如,我创建了一个不在角色中的用户"admin",但它可以访问所有受保护的页面(需要"admin"角色).例如Role.IsUserInRole总是回来true.你有什么想法吗?你能帮助我吗?我应该做什么设置IIS吗?

jav*_*iry 5

我解释了这个解决方案,它对我有用.我现在不是,你可能应该回滚到该AuthenticateRequest事件.如果你想这样做,你必须RoleManagerModule完全从你的项目中删除.尝试这个,让我知道是否工作或nop:

// in your module:

public void Init(HttpApplication context) {
    _application = context;
    // rollback this line:
    _application.AuthenticateRequest += ApplicationAuthenticateRequest;
}

// and in web.config

<!-- in system.web section: -->
</system.web>
  <!-- other stufs -->
  <httpModules>
    <remove name="RoleManager"/>
  </httpModules>
</system.web>

<!-- and in system.webServer section: -->
<system.webServer>
  <!-- other stufs -->
  <modules runAllManagedModulesForAllRequests="true">
    <remove name="RoleManager"/>
  </modules>
<system.webServer>
Run Code Online (Sandbox Code Playgroud)