【问题标题】:Authorization for ASP.NET MVC siteASP.NET MVC 站点的授权
【发布时间】:2009-09-24 12:39:45
【问题描述】:

我有一个数据驱动的 asp.net mvc 应用程序。页面的 Url 也是数据驱动的,因此它们不能在 web.config 中硬编码。 我们已准备好部署网站,最初几天,我们希望页面只有在登录后才能访问。

是否可以向站点添加授权,然后仅通过更改 web.config 将其取出? 我已经添加了这个:

<authentication mode="Forms">
  <forms loginUrl="Login.aspx" timeout="20">
    <credentials passwordFormat="Clear">
      <user name="admin" password="adminpwd" />
    </credentials>
  </forms>
</authentication>
<authorization>
  <deny users="?" />
</authorization>

但是,这不起作用。

我也尝试过位置标签,但不确定在其中指定什么路径。

  <location>
    <system.web>
      <authorization>
        <deny users="?" />
      </authorization>
    </system.web>
  </location>

请注意:默认错误页面无需授权即可工作

<customErrors mode="Off" defaultRedirect="/error">
</customErrors>

你能帮忙吗?

谢谢!

【问题讨论】:

    标签: asp.net-mvc authorization


    【解决方案1】:

    你试过了吗:

    <authorization>
      <deny users="?" />
      <allow users="*" />
    </authorization>
    

    它是自上而下评估的,所以首先拒绝所有匿名用户,然后允许所有其他用户(即所有经过身份验证的用户)

    【讨论】:

    • 我试过了,还是不行。为了消除我的应用程序出现异常的可能性,我尝试了一个全新的 Asp.net MVC 应用程序,但它也无法正常工作。
    • 如果我切换拒绝和允许会有什么变化?
    【解决方案2】:

    也许是控制器动作上的 [Authorize] 属性?也许this 会有所帮助。

    【讨论】:

      【解决方案3】:

      这只是在生产服务器上进行测试时的临时限制吗?如果是这样,您可以尝试常规的HTTP Authentication

      【讨论】:

        猜你喜欢
        • 2012-05-14
        • 1970-01-01
        • 2020-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-10-21
        • 2011-01-24
        • 1970-01-01
        相关资源
        最近更新 更多