Global.asax是我们的底层文件,第一次的IIS请求都会先去执行它里面的文件,所以学会它里面的函数是非常有必要的。而且我们总是忽略这里的知识点,总觉得这是不必须的,其实我们错了,这里才是程序的根本。
文件代码:
/// <summary>
/// 所有的应用,状态,程序被访问,用户退出,都可以找到。,
/// </summary>
public class Global : System.Web.HttpApplication
{
/// <summary>
/// 这里是IIS请求一开始执行,就执行一遍这个方法。后面还有个Application_End方法。
/// </summary>
/// 程序启动的时候都会执行这个函数(一次),相当于Main函数,
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_Start(object sender, EventArgs e)
{
File.AppendAllText("c:/1.txt",DateTime.Now.ToString()+"Application_Start");
}
/// <summary>
/// 这里的Session是服务器端为每一个浏览器保存数据开辟的临时存储空间,当浏览器关闭或者切换用户就会重新开辟内存来保存Session
/// 每一个浏览器的访问网页都会有一个有一个Session
/// 一个浏览器的一个用户公用了一个Session ,当用户主动退出的时候
/// </summary>
/// 统计当前在线人数
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Session_Start(object sender,EventArgs e)
{
//这里相当于建立的临时会话一样。
HttpContext.Current.Session.Abandon();//销毁Session ,15分钟自动取消
}
/// <summary>
/// 请求的时候做一些处理。(每一个应用都会触发这里)
/// </summary>
/// <param name="sender"></param>
/// 查看当前请求的URL,通过这个(HttpContext.Current.Request.URL)在
/// 快速监听里面查看总共请求了哪些URL
/// <param name="e"></param>
protected void Application_BeginRequest(object sender,EventArgs e)
{
//实现功能,屏蔽IP
if (HttpContext.Current.Request.UserHostAddress== "192.168.1.102")
{
HttpContext.Current.Response.Write("这里就可以把自己电脑的IP地址屏蔽掉了。");
}
else
{
HttpContext.Current.Response.Write("");
}
//防盗猎
}
protected void Application_AuthentiateRequest(object sender,EventArgs e)
{
}
/// <summary>
/// 异常的处理模块
/// </summary>
/// 调用这里的函数来曝出异常信息
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_Error(object sender,EventArgs e)
{
}
/// <summary>
/// 断开会话,15超时的时候调用这个
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Session_End(object sender,EventArgs e)
{
}
/// <summary>
/// 程序被关闭的时候执行一次,IIS被关闭才执行。
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_End(object sender,EventArgs e)
{
}
}
函数的说明:
Global.asax这个文件是执行IIS请求必进过的文件,是非常重要。对于Web应用而言是声明周期的一个事件响应的地方。 Global类,它继承自System.Web.HttpApplication,它的作用是定义 ASP.NET 应用程序中的所有应用程序对象共有的方法、属性和事件。 此类是用户在 Global.asax 文件中所定义的应用程序的基类。*:Application_Start() 此函数是我们程序刚启动的时候调用的函数,相当于我们C语言时候的Main函数一样,都是程序一开始执行的函数,可以将一些需要初始化的函数,方法,写在这里,比如路由,日志,IOC,DI,区域,文件等,关闭的时候有个对应的方法Application_End()函数
protected void Application_Start()
{
EngineContext.Initialize(false);
var dependencyResolver = new ControllerDependencyResolver();
DependencyResolver.SetResolver(dependencyResolver);
GlobalConfiguration.Configuration.DependencyResolver = dependencyResolver;
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
protected void Application_End(object sender,EventArgs e)
{
}
*:Application_Error() 异常处理函数,当应用程序中出现未捕获的异常,此函数被调用,这里用HttpContext.Current.Server.GetLastError()来获得异常信息,可以将其保存到log4Net记录到日志中。
protected void Application_Error(object sender, EventArgs e)
{
var exception = Server.GetLastError();
LogException(exception);
}
*:Session_Start() 服务端Session信息,这里是每一个浏览器去访问服务器,服务器都会为其创建内存空间,即Session来保存它的一些信息,我们打开的一些网页都在一个Session中进行访问。(好像是15分钟自动掉线,相当于一次时间有限的会话。)一个浏览器的一个用户公用一个Session,当用户主动退出的时候Session就会被关闭,调用下面的函数来关闭它,Session_End()。可以在它里面来统计当前在线人数等。
HttpContext.Current.Session.Abandon();//销毁Session ,15分钟自动取消
protected void Session_Start(object sender,EventArgs e)
{
//这里相当于建立的临时会话一样。
HttpContext.Current.Session.Abandon();//销毁Session ,15分钟自动取消
}
protected void Session_End(object sender,EventArgs e)
{
}
*:Application_BeginRequest() 请求的时候都会访问这个函数,每一个应用也会触发这里,我们可以通过下面的函数来查看当前的请求URL,(HttpContext.Current.Request.URL)。可以在快速监听里面进行查看。看一个网页总共请求了几次URL。在这里可以屏蔽IP,防盗猎图片等功能。
protected void Application_BeginRequest(object sender,EventArgs e)
{
//实现功能,屏蔽IP
if (HttpContext.Current.Request.UserHostAddress== "192.168.1.102")
{
HttpContext.Current.Response.Write("这里就可以把自己电脑的IP地址屏蔽掉了。");
}
else
{
HttpContext.Current.Response.Write("");
}
//防盗猎
}
*:这个函数我也不是很清楚,等以后学习的时候在补吧。
protected void Application_AuthentiateRequest(object sender,EventArgs e)
{
}
相关推荐
首先,我们来理解Global.asax文件的作用。Global.asax,也被称为应用程序全局事件处理程序,是ASP.NET应用程序中用于定义全局事件和应用级对象的地方。我们可以在这里捕获HTTP请求的生命周期事件,如BeginRequest,...
跨站脚本攻击漏洞修补文件aspx版,使用方法:1.将App_Code目录拷贝到web根目录 ... 假如已经存在Global.asax文件,那直接复制指定代码到Global.asax看,具体代码请参阅压缩包内的使用说明。 运行环境:
4. **Global.asax.cs**:Global.asax文件对应的代码-behind文件,包含了处理Global.asax中事件的C#代码。 5. **treenode.csproj**:这是一个项目文件,用于定义ASP.NET项目中的文件、依赖项以及构建设置。 6. **...
首先,创建一个SQLInjectionHelper类完成恶意代码的检查 代码... /// <summary> ///SQLInjectionHelper 的摘要说明 /// </summary> public class SQLInjectionHelper { /// <summary> /// 获取Post的数据 /// </sum
`Global.asax.vb`是Global.asax文件的后台代码,实现具体的事件处理逻辑。`AssemblyInfo.vb`则包含了关于程序集的信息,如版本、版权、描述等,同时也可能包含一些编译指令和元数据。 总结来说,这个asp.net花店...
9. **Global.asax.resx**:类似地,这个文件存储了Global.asax中的本地化字符串和其他资源。 10. **ReportControlDemo.csproj.webinfo**:这是项目特定的Web信息文件,可能包含了IIS相关的配置信息,如虚拟目录设置...
6. **Global.asax.cs**:与Global.asax文件相对应的后台代码,用于实现自定义的全局事件处理。 7. **test.csproj**:这是一个Visual Studio项目文件,记录了项目的结构、引用和其他构建设置,用于管理开发环境中的...
处理应用程序级事件,学会使用Global.asax文件 需求说明: 在Visual Studio中创建ASP.NET项目 所有页面要求采用代码后置的编码方式 在项目中添加登录页面login.aspx,效果见下图 实现没有登录重定向到...
`Global.asax.cs`是对应的C#代码文件,包含了对这些事件的处理逻辑。在MVC项目中,`Global.asax`常用于注册路由和其他全局设置。 【项目文件 - AddressBook_mvc3_jQuery.csproj】 `.csproj`文件是Visual Studio...
1. **Global.asax**:ASP.NET 应用程序的全局应用程序文件,用于定义应用程序的生命周期事件,如启动、结束等。在 SignalR 中,我们可能会在这里注册 SignalR 的路由和初始化 Hub。 2. **Web.config**:ASP.NET ...
Global.asax文件** `Global.asax`文件是ASP.NET应用程序的全局应用程序事件处理程序。它允许开发者定义应用程序级的事件,如应用程序启动、结束、会话开始、结束等。在政府网站模板中,`Global.asax`可能用于设置...
Global.asax文件** Global.asax是ASP.NET应用程序的全局事件处理程序,它包含了应用程序的生命周期事件和会话事件。在基于Ajax的邮件系统中,Global.asax可能被用来注册Ajax相关的路由,比如处理Ajax请求的开始和...
7. Global.asax与Global.asax.cs:这两个文件是ASP.NET应用程序的全局应用程序事件处理程序。Global.asax.cs文件包含了C#代码,用于处理应用程序启动、结束、会话开始和结束等事件。它也可以用来注册路由,实现URL...
"数据库在App_Data"说明数据库文件被存储在应用程序的App_Data目录下,这是ASP.NET推荐的存放非代码资源的默认位置。值得注意的是,“为了安全我把后缀改为了config”,这可能是为了避免直接暴露数据库文件,通过...
本光盘是《SQL Server 2005 Web 应用开发》一书的配书光盘,内容包括了书中第11、12、13、14章的例题源代码。 本光盘根目录下有5个文件夹,其内容和含义说明如下... (8) Global.asax文件为设置全局变量的配置文件。
总结起来,"pageadmin去版权"涉及到对PageAdmin系统多个核心文件的修改,包括`Global.asax`、`index.aspx`、`web.config`、语言资源文件以及可能的DLL。这个过程需要一定的ASP.NET和网页开发知识,同时也需要注意...
8. **.cs文件**(如Upload.aspx.cs, Progress.aspx.cs, Default.aspx.cs, Global.asax.cs): 这些文件是C#的后台代码,实现了ASP.NET页面的逻辑。例如,Upload.aspx.cs可能包含处理文件上传的事件,如`btnUpload_...
6. Global.asax.cs:Global.asax文件对应的C#代码,处理全局事件。 7. ndCMS.csproj:项目文件,包含了项目的配置和构建信息。 8. license.html:许可证文件,说明了软件的使用条款。 9. default.aspx.resx:资源...
2. 在 Global.asax 文件中添加命名空间引用:using System.IO; 3. 在 Global.asax 文件中增加如下代码: ```csharp // 设置日志 log4net.Config.XmlConfigurator.Configure(); ``` 4. 在 Web.config 文件中增加...