c# - 在生产中隐藏 MVC 页面

标签 c# .net asp.net-mvc production-environment conditional-statements

我有一个新的 MVC 应用程序,它集成到一个更大的预先存在的内部网站中。

在生产中,身份验证详细信息将从现有的 Intranet 站点传递。但在开发中我需要一个本地表单登录控件来创建身份验证。

这意味着我需要一种方法来在将解决方案部署到生产服务器时隐藏任何本地登录页面。我试图使用 Debugger.IsAttached 从任何登录页面重定向

public class AccountController : Controller
{
    public ActionResult LogOn()
    {
        if (!System.Diagnostics.Debugger.IsAttached)
            RedirectToAction("NotFound");

        return View();
    }
}

事实证明这是行不通的。出于某种对我来说是个谜的原因,当导航到 /Account/LogOn 时,登录页面仍然可用。

我可以解决这个问题吗?有没有更好的办法?

最佳答案

如果您有单独的 Web.config 用于生产和开发,您可以在生产环境的 Web.config 中限制对此操作的访问:

<configuration>
   <location path="/Account/LogOn">
      <system.web>
         <authorization>
            <deny users="?"/>
         </authorization>
      </system.web>
   </location>
</configuration>

关于c# - 在生产中隐藏 MVC 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9197099/

相关文章:

c# - Angular Controller 未被调用

c# - 锁定语句 C#

c# - ASP.NET 核心 2.1。 MVC View 中的 Razor UI 类库

c# - 了解用户是否已从 C#/.NET 应用程序连接

.net - SQL 大型表上的 sql azure 超时

asp.net - 在编辑模式下未选择 Html.DropDownListFor 值

c# - 如何检测 Selenium 中上一页/下一页的可用性?

c# - C# 中空泛型参数 <,> 的术语是什么?

c# - 如何在设计时重新排列 WinForms TabControl TabPages?

asp.net-mvc - 如何在 MVC 中测试 ModelMetadata.FromLambdaExpression?