1

我在使用MVC中的[Authorize]属性时遇到问题。MVC Azure AD授权角色

这里是采取的步骤:

  1. 创建Azure的所谓TestAD1
  2. 插入serveral的用户在AD
  3. 创建了一个名为TestGroup1
  4. 使用Visual Studio 2013创建一个MVC项目的Active Directory以Windows Authentication作为认证方法
  5. 插入[Authorize]以上控制方法
  6. 发布网站
  7. 在蔚蓝的门户网站配置为使用蔚蓝的Active Directory作为认证

这些步骤做工精细,一切就像预期的问题是,当我在authorize属性更改为:

[Authorize([email protected]"TestAD1\TestGroup1")]

我总是得到“您没有权限查看该目录或网页。”

我知道了以下解决方案,但它不适合我的项目需要: *写我自己RoleProvider *使用web.config文件来管理权限

+0

我不相信在正常Windows身份验证中翻译为角色的安全组带有AD租户名称。将您的属性更改为'[Authorize(Roles =“TestGroup1”)]'并重试。另外,如果您正在部署到云,请不要**设置“Windows身份验证”。 – astaykov

+0

嗨astaykov,谢谢你的回应,我已经尝试了角色=“***”的不同组合,并且他们都不工作,我应该在云中使用哪种身份验证? –

回答

5

卢卡,我们最近启用的角色要求Azure AD集成应用程序。在这里获取详细信息:http://www.dushyantgill.com/blog/2014/12/10/roles-based-access-control-in-cloud-applications-using-azure-ad/。以下是使用Azure AD App Roles通过[授权]属性执行授权的ASP.NET Web应用程序:https://github.com/dushyantgill/VipSwapper/tree/master/TrainingPoint

Regd您当前的设置,Azure AD中的安全组名称不作为角色声明传输。 Windows身份验证也不能将Azure AD的云服务的身份验证连接起来。

希望这会有所帮助。

让我知道如果你卡住了。

+0

为什么该应用使用自定义授权属性?为什么你不能使用''Authorize(Roles =“”)]'一个? – Ben