C#中的Global.aspx文件处理 [英] Global.aspx file handling in C#
本文介绍了C#中的Global.aspx文件处理的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
大家好!
我的Global.aspx文件包含以下代码:
Hi all!
My Global.aspx file contains this code:
void Application_BeginRequest(object sender, EventArgs e)
{
string path = HttpContext.Current.Request.Url.PathAndQuery;
string pagequery = path.Substring(path.LastIndexOf("/") +1);
string[] pagequery_Elements = pagequery.Split('?');
string ReturnUrl = pagequery_Elements[pagequery_Elements.Length - 1];
//Admin's folder is named "Admin"
// if (ReturnUrl.Contains("ReturnUrl") && ReturnUrl.Contains("admin") && !path.Contains("admin/Login.aspx"))
if (ReturnUrl.Contains("ReturnUrl"))
{
Response.Redirect("~/login.aspx", true);
}
}
当我单击忘记密码"链接时,它不会重定向到〜/RecoveryPassword.aspx页面,而是重定向到〜/login.aspx.
上面的文件中的问题是什么?
When I click the "Forget Password" link, it does not redirect to the ~/RecoveryPassword.aspx page but rather redirects to ~/login.aspx.
What''s the problem in the above file?
推荐答案
如果链接忘记密码"包含名为ReturnUrl的参数,则此行为是可以理解的.当向您的应用程序发起客户端请求时,将在 aspx页面的Page_Init和Page_Load被调用之前,调用Application_BeginRequest方法.在上述方法中,URL被分解为模式/主机/路径和查询字符串组件. if语句仅检查查询字符串是否包含字符串"ReturnUrl",然后重定向到〜/login.aspx.
If the link "Forget Password" contains a parameter called ReturnUrl the behaviour is understandable. The method Application_BeginRequest is called when a client request is initiated towards your application before the Page_Init and Page_Load of your aspx page gets called. In your above method the url is taken apart into schema/host/path and querystring components. The if statement just checks if the querystring contains the string "ReturnUrl" and then redirects to the ~/login.aspx.
void Application_BeginRequest(object sender, EventArgs e)
{
string path = HttpContext.Current.Request.Url.PathAndQuery;
string pagequery = path.Substring(path.LastIndexOf("/") +1);
string[] pagequery_Elements = pagequery.Split('?');
string ReturnUrl = pagequery_Elements[0]; //Contains schema/host/path
string QueryString = pagequery_Elements[1]; //Contains querystring part
//Admin's folder is named "Admin"
// if (ReturnUrl.Contains("ReturnUrl") && ReturnUrl.Contains("admin") && !path.Contains("admin/Login.aspx"))
if (QueryString.Contains("ReturnUrl") && !ReturnUrl.ToUpper().Contains("RECOVERYASSWORD.ASPX"))
{
Response.Redirect("~/login.aspx", true);
}
}
希望能为您清除它.
干杯!
Hope that clears it up for you.
Cheers!
将其更改为
change this as
void Application_BeginRequest(object sender, EventArgs e)
{
string path = HttpContext.Current.Request.Url.PathAndQuery;
string pagequery = path.Substring(path.LastIndexOf("/") +1);
string[] pagequery_Elements = pagequery.Split(''?'');
string ReturnUrl = pagequery_Elements[pagequery_Elements.Length - 1];
//Admin''s folder is named "Admin"
// if (ReturnUrl.Contains("ReturnUrl") && ReturnUrl.Contains("admin") && !path.Contains("admin/Login.aspx"))
if (ReturnUrl.Contains("ReturnUrl") && !path.ToUpper().Contains("RECOVERYPASSWORD.ASPX"))
{
Response.Redirect("~/login.aspx", true);
}
}
--Pankaj
--Pankaj
这篇关于C#中的Global.aspx文件处理的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文