Authorize属性在带有OWIN的Azure上不起作用



我已将在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" /> <!-- <<<<< -->

相关内容

  • 没有找到相关文章

最新更新