代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Asp.NET
】
利用HttpModule 检查用户是否有权限打开指定的网址
作者:
郑文亮
/ 发布于
2016/2/15
/
794
1. 建立一个网站项目 2. 在app_code 里面 新建立一个类 /// <summary> /// 说明:检查用户是否有权使用模块的Module /// </summary> using System; using System.Collections.Generic; using System.Text; using System.Web; public class SystemModuleAuthorizationModule : IHttpModule { #region IHttpModule 成员 public void Dispose() { } public void Init(HttpApplication context) { context.AcquireRequestState += new EventHandler(context_AcquireRequestState); } void context_AcquireRequestState(object sender, EventArgs e) { HttpApplication application = (HttpApplication)sender; string d = application.Request.Url.ToString(); // 如果用户未登录,则无需检查模块授权,因为请求会被用户登录Module重定向到登录页面。 if (application.Session["UserName"] == null) { string requestUrl = application.Request.Url.ToString(); string requestPage = requestUrl.Substring(requestUrl.LastIndexOf('/') + 1); // 如果请求的页面不是登录页面,刚重定向到登录页面。 if (requestPage != "Login.aspx") application.Server.Transfer("Login.aspx"); return; } // 获取用户名和Url string userName = application.Session["UserName"].ToString(); string url = application.Request.Url.ToString(); // 如果用户没有被授权,请求被终止,并打印提示信息。 if (!Validator.CanUseModule(userName, url)) { application.CompleteRequest(); application.Response.Clear(); application.Response.Write(string.Format("对不起!{0},您无权访问此模块!", userName)); } else { application.Response.Write(string.Format("欢迎您!{0}!", userName)); } } #endregion } public class Validator { /// <summary> /// 检查用户是否被授权使用模块。 /// aaa可以使用模块 a.aspx, 其他的情况返回false /// </summary> /// <param name="userName"></param> /// <param name="url"></param> /// <returns></returns> public static bool CanUseModule(string userName, string url) { if (url.Contains("login.aspx") == true) { return true; } if (userName == "aaa" && url.Contains("a.aspx")) { return true; } else { return false; } } } 3. web.config 文件 配置如下 <httpModules> <add name="SystemModuleAuthorizationModule" type="SystemModuleAuthorizationModule" /> </httpModules> 备注: 因为类文件放在app_Code 下面 所以没有加命名空间的名称(不需要) 如果是一个wen应用程序 <system.web> <httpModules> <add name="SystemModuleAuthorizationModule" type="WebApplication3.SystemModuleAuthorizationModule" /> </httpModules> </system.web> 注解: WebApplication3 是这个项目的命名空间 4. 建立login.aspx 里面有一个按钮 后台文件: protected void Button1_Click(object sender, EventArgs e) { Session["UserName"] = TextBox1.Text.Trim(); } 前台页面 : <div> <a href="a.aspx">页面a</a> </div> <div> <a href="b.aspx">页面b</a> </div> 5. 建立一个空的a.aspx 和 b.aspx (测试用)
试试其它关键字
HttpModule
用户权限
同语言下
.
gzip压缩
.
实现http多线程断点续传下载文件
.
实现多线程断点续传下载大文件
.
生成字符串的 CheckSum
.
根据 UserAgent 获取浏览器的类型和版本
.
根据 Agent 判断是否是智能手机
.
隐藏手机号中间四位为*方法
.
合并图片(二维码和其他图片合并)
.
ASP.NET CORE中判断是否移动端打开网页
.
ASP.NET(C#)实现页面计时(定时)自动跳转
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
郑文亮
贡献的其它代码
(
3
)
.
压缩asp.net产生的viewstate
.
利用HttpModule 检查用户是否有权限打开指定的网址
.
利用HttpModule 检查用户是否有权限打开指定的网址
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3