HTTP模块使用一些加密重写URL

时间:2013-09-19 11:30:07

标签: asp.net httpmodule breadcrumbs

我在HTTPModule的帮助下编写一个类,在访问任何页面之前检查会话中的userIdentity。如果会话中的变量为null或为空,我将在会话过期页面中重定向用户。

课堂代码:

public class SessionUserValidation : IHttpModule
{
    public void Dispose()
 {

}

public void Init(HttpApplication application)
{
    application.PreRequestHandlerExecute += new     
      EventHandler(application_PreRequestHandlerExecute);
}


private void application_PreRequestHandlerExecute(object sender, EventArgs e)
{
    HttpApplication application = (HttpApplication)sender;
    IHttpHandler handler = application.Context.Handler;
    Page reqPage = handler as Page;
    if (reqPage != null)
    {
        reqPage.PreInit += new EventHandler(CustomModule_Init);
    }
}


private void CustomModule_Init(object sender, EventArgs e)
{

    Page Page = sender as Page;
    if (!Page.Request.Url.ToString().Contains("mySessionExpired.aspx") &&
        !Page.Request.Url.ToString().Contains("myLogin.aspx"))
    {
        if (HttpContext.Current.Session["encryptedUserId"] == null)
        {


    HttpContext.Current.Response.Redirect("../Modulenames/mySessionExpired.aspx", false);
        }
    }
}

}

一切都运行正常,唯一的问题是它在URL中添加了某种加密,我的面包屑在页面中不起作用。网址转换如下:

:// thewebsite /项目/的(S(jnd4o5ljdgs0vq1zd4niby4a)) /Pages/mySessionExpired.aspx

不知道为什么要添加这个文本片段...请帮助

- 阿图

0 个答案:

没有答案