如何解决需要暂时禁用对ASP.Net MVC 3网站的访问
| 临时禁用对ASP.Net MVC 3网站的访问的最简单方法是什么? 访问仅限于特定的IP或本地主机 所有外部用户都收到以下文本:\“ Matrix reloaded ... \”或\“ Under Construction \”。 谢谢!解决方法
将app_offline.htm电子邮件添加到根文件夹,该站点将无法访问,并且所请求的任何URL \都将显示app_offline.htm内容。
编辑:没有注意到能够在本地访问的功能。从外部用户那里删除站点的一种方法是向站点添加http模块。最简单的方法是将模块直接放在app_code文件夹中。就像是:
using System;
using System.Web;
namespace YourNameSpace
{
public class BlockRemoteModule : IHttpModule
{
public BlockRemoteModule() {}
public void Dispose() {}
public void Init(HttpApplication application)
{
application.BeginRequest += new EventHandler(OnBeginRequest);
}
public void OnBeginRequest(object sender,EventArgs e)
{
if (HttpContext.Current.Request.ServerVariables[\"LOCAL_ADDR\"] != HttpContext.Current.Request.ServerVariables[\"REMOTE_ADDR\"])
{
HttpContext.Current.Response.StatusCode = 503;
HttpContext.Current.Response.Write(\"Under Construction.\");
HttpContext.Current.Response.End();
}
}
}
}
然后在web.config中注册它(假设iis7 +)
<system.webServer>
<modules runAllManagedModulesForAllRequests=\"true\">
<add name=\"BlockRemoteModule\" type=\"YourNameSpace.BlockRemoteModule,App_code\" />
</modules>
</system.webServer>
,您可以尝试使用动作过滤器,这样您就可以选择无法访问哪些动作/控制器。此操作筛选器仅可以检查某些appSetting值,如果将其设置为true / false,它将重定向到维护视图下。
,您应该在应用程序服务器(在这种情况下为IIS)中配置重定向:
http://technet.microsoft.com/zh-CN/library/cc732969(WS.10).aspx
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。