【问题标题】:Restrict access to views to debug only限制对视图的访问以仅调试
【发布时间】:2011-06-05 06:06:59
【问题描述】:

我有一个使用 asp.net mvc3 的网页。我正在通过 appharbor 部署它,这太棒了。整个页面都是公开的,所以我不需要用户身份验证或类似的东西,但是有一些管理页面只有我应该能够访问。

我希望某些视图只能在我以调试模式在本地运行时才能访问,而不是使用任何类型的带有密码的身份验证页面,但在部署到 appharbor 后才能访问。

是否有某种环境设置可以用来:

  1. 根据页面元素(链接)是在本地运行还是在服务器上运行来显示或隐藏页面元素(链接)。
  2. 如果应用程序在 appharbor 上运行,则限制对整个视图的访问(返回 403)。

如何在我的视图和控制器中读取和应用这些设置?

【问题讨论】:

    标签: asp.net-mvc-3 access-control appharbor


    【解决方案1】:

    一种粗略的方法是使用

    #if DEBUG
        ... some code here
    #else
        ... some other code here
    #end if
    

    作为:http://haacked.com/archive/2007/09/16/conditional-compilation-constants-and-asp.net.aspx#51205

    Is there an #IF DEBUG for Asp.net markup?

    【讨论】:

    • 这行得通,但我认为这是个坏主意。最好不要重新发明轮子并使用内置的身份验证提供程序和过滤器。效果更好。
    【解决方案2】:

    AppHarbor 现在支持 web.config 转换,因此在您的发行版或 AppHarbor web.config 中,您可以阻止这些文件或 web.config 中的文件夹。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-05
      • 1970-01-01
      • 1970-01-01
      • 2014-03-05
      • 2017-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多