我已将在 Windows Azure 云服务中运行的 Web 应用程序从默认成员(member)系统的 MVC 4 模板迁移到新的基于 OWIN 的 ASP.NET 身份提供程序。
该应用程序严重依赖角色,但出于某种原因,自升级以来这些角色已停止在 Azure 上运行。
我的 Controller 或操作用[Authorize]
装饰。这工作正常,除非我指定角色 [Authorize(Roles = "User.Test")]
并在 Azure 计算模拟器中运行它。现在,我将无限重定向到登录页面并返回(我已登录,但由于某种原因它不接受该角色)。
有趣的是,如果我直接调试/运行 Web 项目(因此不使用 Azure 模拟器),则一切正常。
关于如何在 Azure 上也实现此功能有什么想法吗?我还没有在其他任何事情上出现过这种行为,所以这让我一无所知。
2013 年 11 月 26 日更新
我发现 VS2013 中的默认 MVC 5 模板有类似的行为。请看这个forum thread on ASP.NET了解如何在没有 Azure 的情况下重现此问题的步骤。
最佳答案
好吧,出于某种原因,我自己使用 MyGet 中的 Owin 和 Identity 库的预发行版本造成了这一切。
删除所有软件包并安装稳定版本解决了我的所有问题。
关于c# - 授权属性在 Azure 上无法使用 OWIN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20194921/