asp.net 添加全局过滤,防止未登录就可以进入系统

1、添加MyModule 类库  ,创建MyHttpModule类  如下图

 

 

 

代码:

public class MyHttpModule : IHttpModule
{
public MyHttpModule()
{
//
// TODO: 在此处添加构造函数逻辑
//
}

public void Dispose()
{
}

public void Init(HttpApplication context)
{
context.AcquireRequestState += Context_AcquireRequestState;
}

private void Context_AcquireRequestState(object sender, EventArgs e)
{
// 获取应用程序
HttpApplication application = (HttpApplication)sender;
// 检查用户是否已经登录
if (application.Context.Session == null)
return;
if (application.Context.Session["UserName"] == null)
{
// 获取Url
string requestUrl = application.Request.Url.ToString();
string requestPage = requestUrl.Substring(requestUrl.LastIndexOf('/') + 1);
// 如果请求的页面不是登录页面,刚重定向到登录页面。
if ( requestPage != "Login.aspx" && requestPage != "login.aspx" && requestPage != "CreateValiImg.aspx")
{
string login = "http://" + application.Request.Url.Authority + "/" + "Login.aspx";
application.Response.Redirect(login);
}
}
else
{
// 已经登录,向每个请求的页面打印欢迎词。
}

}

2、在web.config中添加

 

 

<modules runAllManagedModulesForAllRequests="true">
<add name="myHttpModule" type="MyHttpModule"/>
</modules>

3、web 项目添加

 MyModule 类库 的引用

posted @ 2021-12-27 14:44  orenl  阅读(238)  评论(0)    收藏  举报