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 类库 的引用

浙公网安备 33010602011771号