博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
10.在Global全局文件中的Application_BeginRequest示例
阅读量:6245 次
发布时间:2019-06-22

本文共 1570 字,大约阅读时间需要 5 分钟。

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

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

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

开发步骤:

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

   2.新建一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文件,如下图

转载于:https://www.cnblogs.com/yagzh2000/p/3174849.html

你可能感兴趣的文章
Percona MySQL 5.7 Linux通用二进制tar包安装(CentOS 6.5)
查看>>
90后女生吴江平独闯9个国家 吴江平穷游照片欣赏
查看>>
linux密码策略
查看>>
【REACT NATIVE 跨平台应用开发】环境搭建问题记录&&XCODE7模拟器上COMMAND+R失效的几种替换方法...
查看>>
C++实现选择排序
查看>>
面试题:合并两个排序的链表
查看>>
PPT控件 Spire.Presentation for .NET V2.8.35发布 | 支持设置演示幻灯片布局
查看>>
云环境所面临的安全威胁
查看>>
STM32 USB转串口驱动移植到SylixOS中遇到的问题总结
查看>>
组播学习分享 第三天
查看>>
【C#小知识】C#中一些易混淆概念总结(五)---------深入解析C#继承
查看>>
数据库优化
查看>>
TensorFlow的基本运算01-03
查看>>
Hive-有意思的query
查看>>
SylixOS调试与性能分析技术--内存泄漏检测
查看>>
消息队列-ActiveMQ
查看>>
LoadRunner12使用教程(二)——回放与录制
查看>>
工作收获点
查看>>
PhpStorm Terminal终端无法打开
查看>>
学习笔记TF036:实现Bidirectional LSTM Classifier
查看>>