复制代码 代码如下:
<?xml version="1.0" encoding="utf-8"?>
<DownLoad>
<CheckType>1</CheckType>
<CookiesName>username</CookiesName>
<UrlPattern>
<![CDATA[//(.+?)/.rar/b]]>
</UrlPattern>
<UrlReplace>
<![CDATA[Default.aspx?d=$1.rar]]>
</UrlReplace>
<AllowHost>
<![CDATA[127.0.0.1]]>
</AllowHost>
</DownLoad>
复制代码 代码如下:
void Application_BeginRequest(object sender, EventArgs e)
{
bool IsAllowDomain = false;
bool IsLogin = false;
string CookiesName = "UserName", AllowHost, ReferrerHost="";
int CheckType = 1;
bool AllowDown = false;
string[] AllowHostArr;
string UrlPattern = "", UrlReplace = "";
string[] pattern, replace;
string ConfigFile = ConfigurationManager.AppSettings["DownLoadConfig"];
if (ConfigFile != "")
{
try
{
System.Xml.XmlDataDocument XDConfig = new System.Xml.XmlDataDocument();
XDConfig.Load(AppDomain.CurrentDomain.BaseDirectory + @"http://www.vevb.com/" + ConfigFile);
if (XDConfig.SelectSingleNode("DownLoad/CheckType").InnerText != "")
{
CheckType = int.Parse(XDConfig.SelectSingleNode("DownLoad/CheckType").InnerText);
}
if (XDConfig.SelectSingleNode("DownLoad/CookiesName").InnerText != "")
{
CookiesName = XDConfig.SelectSingleNode("DownLoad/CookiesName").InnerText;
}
AllowHost = XDConfig.SelectSingleNode("DownLoad/AllowHost ").InnerText;
AllowHostArr = AllowHost.Split('|');
UrlPattern = XDConfig.SelectSingleNode("DownLoad/UrlPattern").InnerText;
UrlReplace = XDConfig.SelectSingleNode("DownLoad/UrlReplace").InnerText;
pattern = UrlPattern.Split('@');
replace = UrlReplace.Split('@');
if (CookiesName == "") CookiesName = "UserName";
IsLogin = false.Equals(Request.Cookies[CookiesName] == null || Request.Cookies[CookiesName].Value == "");
if (Request.UrlReferrer != null) ReferrerHost = Request.UrlReferrer.Host.ToString();
if (AllowHostArr.Length < 1)
{
IsAllowDomain = true;
}
else
{
for (int HostI = 0; HostI < AllowHostArr.Length - 1; HostI++)
{
if (AllowHostArr[HostI].ToLower() == ReferrerHost.ToLower())
{
IsAllowDomain = true;
break;
}
}
}
switch (CheckType)
{
case 1:
AllowDown = true.Equals(IsAllowDomain);
break;
case 2:
AllowDown = IsLogin;
break;
case 3:
AllowDown = true.Equals(IsAllowDomain && IsLogin);
break;
}
if (AllowDown == false)
{
string oldUrl = HttpContext.Current.Request.RawUrl;
string newUrl = oldUrl;
for (int iii = 0; iii < pattern.Length; iii++)
{
if (Regex.IsMatch(oldUrl, pattern[iii], RegexOptions.IgnoreCase | RegexOptions.Compiled))
{
newUrl = Regex.Replace(oldUrl, pattern[iii], replace[iii], RegexOptions.Compiled | RegexOptions.IgnoreCase);
oldUrl = newUrl;
}
}
this.Context.RewritePath(newUrl);
}
}
catch
{
}
}
}
复制代码 代码如下:
<appSettings>
<add key="DownLoadConfig" value="DownLoad.config"/>
</appSettings>
新闻热点
疑难解答
图片精选