高分求解,关于用IHttpHandler来判断用户权限的问题(附代码)

eqh 2006-11-28 06:34:17
代码如下:
public class Checked:IHttpHandler
{


public Checked()
{

}

#region IHttpHandler 成员



public void ProcessRequest(HttpContext context)
{

string url=context.Request.Path.ToString().ToLower();

IRole d=new CheckRole();
if(!d.CheckUserRole(url))//检查权限,如果没有此模块的权限则导向提示页
{
context.Response.Redirect("~/noright.aspx");
}

}

public bool IsReusable
{
get
{
// TODO: 添加 Checked.IsReusable getter 实现
return true;
}
}

#endregion


我是把页面的地址放到数据库里,然后用户请求的时候再和数据库里的数据作对比来达到权限控制的目的.
以上程序执行后,如果没有权限则可以成功导向一个提示页,但是访问已被授权的页面就出现空白页,只有基本的几行HTML代码,其它的代码都不显示(在没有和IHttpHandler关联之前是正常的).

请教各位了,用context.RewritePath()执行重定向我也试过了,都不行.
...全文
189 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
awuzi 2007-01-29
  • 打赏
  • 举报
回复
mark
szh3210 2006-11-29
  • 打赏
  • 举报
回复
学习
伴老思源 2006-11-29
  • 打赏
  • 举报
回复
IHttpHandler在一次请求中是唯一的
eqh 2006-11-29
  • 打赏
  • 举报
回复
多谢几位!
Ivony 2006-11-28
  • 打赏
  • 举报
回复
应该用IHttpModule,Page本身就是一个IHttpHandler,你自己写一个则表示你必须完整实现Page的所有功能。因为IHttpHandler在一次请求中是唯一的,多了解一下IHttpModule和IHttpHandler的区别。
cat_hsfz 2006-11-28
  • 打赏
  • 举报
回复
你应该用IHttpModule,而不是IHttpHandler。Module是处理请求中的一个步骤,你可以根据权限重定向该清楚。Handler用于处理请求,你用了Handler而又不作出任何处理,当然返回内容为空啦。
go_now 2006-11-28
  • 打赏
  • 举报
回复
你是通过检测用户的请求地址来划分权限,根据用户身份,或者设置角色也不错啊(这可是 windows的经典)
job_2006 2006-11-28
  • 打赏
  • 举报
回复
关注加顶
eqh 2006-11-28
  • 打赏
  • 举报
回复
怎么解决?
cpp2017 2006-11-28
  • 打赏
  • 举报
回复
因为你把请求截获 了,你不处理就没有内容.

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧