代码语言
.
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 检查用户是否有权限打开指定的网址
作者:
郑文亮
/ 发布于
2012/8/30
/
705
<div>/// <summary></div> <div>/// 说明:检查用户是否有权使用模块的Module</div> <div>/// 作者:郑文亮</div> <div>/// 联系:<a href="http://www.cnblogs.com/zhwl">http://www.cnblogs.com/zhwl</a></div> <div>/// </summary></div> <div>using System;</div> <div>using System.Collections.Generic;</div> <div>using System.Text;</div> <div>using System.Web;</div> <div> public class SystemModuleAuthorizationModule : IHttpModule {</div> <div> #region IHttpModule 成员</div> <div> public void Dispose() {</div> <div> } <div> public void Init(HttpApplication context) {</div> <div> context.AcquireRequestState += new EventHandler(context_AcquireRequestState);</div> <div> } <div> void context_AcquireRequestState(object sender, EventArgs e) {</div> <div> HttpApplication application = (HttpApplication)sender;</div> <div> string d = application.Request.Url.ToString();</div> <div> // 如果用户未登录,则无需检查模块授权,因为请求会被用户登录Module重定向到登录页面。</div> <div> if (application.Session["UserName"] == null) {</div> <div> string requestUrl = application.Request.Url.ToString();</div> <div> string requestPage = requestUrl.Substring(requestUrl.LastIndexOf('/') + 1);</div> <div> // 如果请求的页面不是登录页面,刚重定向到登录页面。</div> <div> if (requestPage != "Login.aspx")</div> <div> application.Server.Transfer("Login.aspx");</div> <div> return; } <div> // 获取用户名和Url</div> <div> string userName = application.Session["UserName"].ToString();</div> <div> string url = application.Request.Url.ToString();</div> <div> // 如果用户没有被授权,请求被终止,并打印提示信息。</div> <div> if (!Validator.CanUseModule(userName, url)) {</div> <div> application.CompleteRequest(); application.Response.Clear(); application.Response.Write(string.Format("对不起!{0},您无权访问此模块!", userName));</div> <div> } else { application.Response.Write(string.Format("欢迎您!{0}!", userName)); } <div> } <div> #endregion</div> <div>} <div>public class Validator {</div> <div> /// <summary></div> <div> /// 检查用户是否被授权使用模块。</div> <div> /// aaa可以使用模块 a.aspx, 其他的情况返回false</div> <div> /// </summary></div> <div> /// <param name="userName"></param></div> <div> /// <param name="url"></param></div> <div> /// <returns></returns></div> <div> public static bool CanUseModule(string userName, string url) { if (url.Contains("login.aspx") == true) { return true; } if (userName == "aaa" && url.Contains("a.aspx")) {</div> <div> return true;</div> <div> } else { return false; } <div> } <div>} <div> 3. web.config 文件 配置如下</div> <div> <httpModules> <add name="SystemModuleAuthorizationModule" type="SystemModuleAuthorizationModule" /> </httpModules></div> <div> 备注: 因为类文件放在app_Code 下面 所以没有加命名空间的名称(不需要)</div> <div> 如果是一个wen应用程序</div> <div> <system.web></div> <div> <httpModules> <add name="SystemModuleAuthorizationModule" type="WebApplication3.SystemModuleAuthorizationModule" /> </httpModules> </system.web></div> <div> 注解: WebApplication3 是这个项目的命名空间</div> <div>4. 建立login.aspx 里面有一个按钮</div> <div> 后台文件: 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></div> <div></div>
试试其它关键字
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