zoukankan      html  css  js  c++  java
  • 10.在Global全局文件中的Application_BeginRequest示例

    只要有人访问本网站,都要执行全局文件的Application_BeginRequest事件。因此我们可以防盗链。

    示例要求:凡不是网站本机登录的都给客户端提示,用图片显示。

    分析:由于网页在加载时不是一次性全部加载,如先加载网页,再加载相关的js文件,再加载图片等,因此在客户端上有个图片元素,在此事件中判断请求的类型是否为图片并且是否是以localhost登录的,如果不是就发送客户端的另个图片。

    开发步骤:

       1.在目录中放两个图片,一个图片为正常显示,另一个为禁用提示的图片

       2.新建一HTML页面,它的源码为:

      

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
    </head>
    <body>
        <img src="imgs/pic.jpg" />
    </body>
    </html>

       3.添加Global.asax文件,写入以下内容

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.SessionState;
    
    namespace GlobalTest
    {
        public class Global : System.Web.HttpApplication
        {
    
            protected void Application_Start(object sender, EventArgs e)
            {
    
            }
    
            protected void Session_Start(object sender, EventArgs e)
            {
    
            }
    
            protected void Application_BeginRequest(object sender, EventArgs e)
            {
               if(HttpContext.Current.Request.Url.AbsolutePath.EndsWith(".jpg")&&HttpContext.Current.Request.UrlReferrer.Host!="localhost")
               {
                   HttpContext.Current.Response.WriteFile(HttpContext.Current.Server.MapPath("~/imgs/forbid.png"));
                   HttpContext.Current.Response.End();
               }
    
            }
    
            protected void Application_AuthenticateRequest(object sender, EventArgs e)
            {
    
            }
    
            protected void Application_Error(object sender, EventArgs e)
            {
    
            }
    
            protected void Session_End(object sender, EventArgs e)
            {
    
            }
    
            protected void Application_End(object sender, EventArgs e)
            {
    
            }
        }
    }

    4.运行网页,用loaclhost显示为pic.jpg文件,如果在地址栏中改为127.0.0.1则会显示我们要的forbid.png文件,如下图

  • 相关阅读:
    Oracle创建表空间、创建用户以及授权、查看权限
    Oracle建立表空间和用户
    Oracle创建用户、表空间、导入导出、...命令
    C#中AppDomain.CurrentDomain.BaseDirectory与Application.StartupPath的区别
    maven 工程启动找不到 Spring ContextLoaderListener 的解决办法
    配置整合DWR3.0和Spring2.5使用annotation注解
    jQuery打印
    个项目涉及到的50个Sql语句(整理版)
    编写安卓平台程序的几种方式
    豪总说
  • 原文地址:https://www.cnblogs.com/yagzh2000/p/3174849.html
Copyright © 2011-2022 走看看