Azure vs owin和web.config中的授权

时间:2015-03-31 17:26:18

标签: asp.net authentication azure authorization owin

我有一个托管在Azure上的c#应用。我已经将应用程序配置为通过用户的Microsoft帐户使用外部身份验证,这可以正常工作。但是,当我在web.config文件中添加授权节点时,它定义了'deny users =“?”',它没有区别 - 用户可以看似浏览网站,无论他们是否登录。他们可以选择使用他们的MS帐户登录,并且工作正常。

因此,我在Azure中发现了授权功能,它允许我使用Azure Active Directory并通过Azure管理门户强制对站点进行身份验证,这也很好。但现在我无法访问我的角色定义。

因为我现在有点困惑,我的第一个问题是,有谁知道为什么web.config中的授权元素没有效果?

其次,我认为应用程序中的外部身份验证提供程序完全独立于Azure身份验证提供程序,因此使用一个系统优于另一个系统是否有优势? OWIN可以使用角色,这是一个优点 - 使用Azure身份验证是否有优势 - 除了易于打开/关闭?

相关配置部分

<configuration> 
 <system.web> 
   <authentication mode="Forms"> 
    <forms loginUrl="~/Account/Login.aspx" timeout="60" defaultUrl="~/" protection="All"/> 
   </authentication> 
   <authorization> 
    <allow users="*"/> 
    <deny users="?"/> 
   </authorization> 
 </system.web> 
 <system.webServer> 
  <modules> 
   <remove name="FormsAuthenticationModule" /> 
  </modules> 
 </system.webServer> 
</configuration> 

1 个答案:

答案 0 :(得分:0)

您正在混合授权模式。由于您使用的是OWIN和c#,我假设您的应用程序是MVC应用程序。您应该阅读Getting Started with Asp.Net Identity处的详细文章和示例。这些示例很容易遍历并部署到Azure以测试不同的身份验证/授权方法。