我已将在Windows Azure云服务中运行的web应用程序从MVC 4模板的默认成员资格系统迁移到新的基于OWIN的ASP.NET Identity提供程序。
该应用程序严重依赖角色,由于某种原因,自升级以来,这些角色已停止在Azure上工作。
我的控制器或操作使用[Authorize]
进行装饰。这很好,除非我指定了角色[Authorize(Roles = "User.Test")]
并在Azure计算模拟器中运行它。现在,我将获得无限的重定向到登录页面并返回(我已经登录,但由于某种原因,它不接受这个角色)。有趣的是,如果我直接调试/运行web项目(所以不使用Azure模拟器),一切都很好。
关于如何在Azure上实现这一点,有什么想法吗?我还没有对其他任何事情有过这种行为,所以这让我有点不知所措。
2013年11月26日更新
我在VS2013中的默认MVC 5模板中发现了类似的行为。有关如何在没有Azure的情况下重现此问题的步骤,请参阅ASP.NET上的此论坛线程。
好吧,出于某种原因,我自己使用MyGet中Owin和Identity库的预发行版造成了这一切。
删除所有的包并安装稳定的构建修复了我的所有问题。
这个对我来说很有用:
<system.webServer>
<modules>
<remove name="RoleManager" /> <!-- <<<<< -->