Asp.net Azure vs owin和web.config中的授权

Asp.net Azure vs owin和web.config中的授权,asp.net,authentication,azure,authorization,owin,Asp.net,Authentication,Azure,Authorization,Owin,我有一个托管在Azure上的c应用程序。我已将应用程序配置为通过用户的Microsoft帐户使用外部身份验证,该帐户工作正常。但是,当我在web.config文件中添加authorization节点时,它定义了“deny users=?”,这没有什么区别——用户似乎可以浏览站点,无论他们是否登录。如果愿意,他们可以使用MS帐户登录,这很好 因此,我在Azure中发现了授权功能,它允许我使用Azure Active Directory并通过Azure管理门户对站点实施身份验证,这也很好。但现在我无

我有一个托管在Azure上的c应用程序。我已将应用程序配置为通过用户的Microsoft帐户使用外部身份验证,该帐户工作正常。但是,当我在web.config文件中添加authorization节点时,它定义了“deny users=?”,这没有什么区别——用户似乎可以浏览站点,无论他们是否登录。如果愿意,他们可以使用MS帐户登录,这很好

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

我现在有点困惑,我的第一个问题是,有人知道为什么web.config中的authorization元素没有效果吗

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

相关配置部分

<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> 

您正在混合授权模式。因为您使用的是OWIN和c,所以我假设您的应用程序是MVC应用程序。你应该阅读详细的文章和样品在。这些示例很容易浏览并部署到Azure以测试不同的身份验证/授权方法。

粘贴您确切的web.config部分-授权和身份验证,与system.webserver中的任何模块定义一起。下面是web.config部分:您有有趣的配置。首先将其设置为表单,然后从服务器中删除表单身份验证模块。嗯,当您删除FormsAuthenticationModule并将身份验证设置为Forms时,难怪每个人都可以在不提示输入用户/密码的情况下访问该网站。嗨,该部分是在某个时候自动添加的,可能是在VS中创建项目时,我尝试从web.config中删除'remove name=FormsAuthenticationmodule元素,但似乎没有任何区别。我会再试一次。我从web.config中删除了'remove name=FormsAuthenticationmodule元素,然后再试了一次,但当我访问网站时,它仍然不会强制登录。事实上,它的web表单仍在试图找出如何强制验证,因为authorize属性不起作用