【发布时间】:2015-01-09 15:21:55
【问题描述】:
我在 MVC 中使用 [Authorize] 属性时遇到问题。
以下是采取的步骤:
- 创建名为
TestAD1的 Azure Active Directory - 在 AD 中插入多个用户
- 创建一个名为
TestGroup1的组 - 使用 Visual Studio 2013 创建一个以
Windows Authentication作为身份验证方法的 MVC 项目 - 在控制器方法上方插入
[Authorize] - 发布网站
- 在 azure 门户中配置网站以使用 azure Active Directory 作为身份验证
这些步骤工作正常,一切都像预期的那样问题是当我将授权属性更改为:
[Authorize(Roles=@"TestAD1\TestGroup1")]
我总是收到“您无权查看此目录或页面。”
我知道以下解决方案,但它不符合我的项目需求:
* 写我自己的RoleProvider
* 使用 web.config 管理权限
【问题讨论】:
-
我不相信在角色中翻译的安全组带有 AD 租户名称,就像在正常 Windows 身份验证中一样。将您的属性更改为
[Authorize(Roles="TestGroup1")],然后重试。此外,如果您要部署到 Cloud,请不要设置Windows Authentication。 -
您好 astaykov,感谢您的回复,我尝试了不同的 Roles="***" 组合,但都不起作用,我应该在云中使用哪种身份验证?
标签: asp.net-mvc-4 azure authorization azure-web-app-service azure-active-directory