解决方案 »

  1.   

    小灰,刚才看了下你的代码:
    你的AuthenticateRequest事件是给你自己定义的public class MyHttpModule : IHttpModule类的app_AuthenticateRequest(object sender, EventArgs e)方法完成的,然后设置了web.config
    <httpModules>
    <add name="MyHttpModule" type="BLL.MyHttpModule,BLL"></add>
    </httpModules>
    很好的解决方案!!我的是把AuthenticationRequest事件在Global.ascs文件的Application_AuthenticationRequest()处理的,在这个方法里把用户角色写入了当前请求用户!然后在就在这下面测试IsInRole为true,但是转跳到其他页,测试值就是false,不能通过角色测试!难道自定义角色不能通过Global.ascs处理????
      

  2.   

    小灰,你的方案我试了,还是老问题,在app_AuthenticateRequest中测试IsInRole()为true,但是转跳页面后还是false!
    难道是我的角色管理没有绕过系统自带的角色验证机制?
      

  3.   

    你的域名是不是有问题。如果登录时写入的域名也会有影响。你不妨用httpwatch跟踪一下看看,到底哪个环节出了问题。http://www.svnhost.cn/Download/?k=httpwatch
      

  4.   

    我测试了下请求用户类型在authenticaterequest事件处理程序中写入role信息后,用户类型应该是GenericPrincipal,但是转跳页面后请求用户类型是RolePrincipal了!RolePrincipal这个应该是管理aspnetdb数据库成员,角色的类
      

  5.   

    原因找到了,我的IIS里启用了角色管理,把它禁用就行,谢谢各位!