Context.Response.Redirect(Context.Request["ReturnUrl"]) ; // 重定向到用户申请的初始页面改为:FormsAuthentication.RedirectFromLoginPage(user,true);

解决方案 »

  1.   

    但要保证你最初请求的页面是default.aspx
      

  2.   

    jierry007,用FormsAuthentication.RedirectFromLoginPage(user,true);就不能添加用户role信息了,最初请求的是default.aspx没错
      

  3.   

    实际上是重定向到了Default.aspx,但是因为web.config里的配置又转到了login.aspx,这样的原因是用户不满足web.config里面的配置,但在Application_AuthorizeRequest事件中我判断过Ctx.User.IsInRole("Admin")是等于true,就是说当前用户在global中可以检测到是属于Admin角色的,想不通啊
      

  4.   

    呵呵,在你的web.config 的<configuration>加入以下就可以了:
      <location path="default.aspx">
        <system.web>
          <authorization>
            <allow users="*"/>
          </authorization>
        </system.web>
      </location>
      

  5.   

    兄弟,验证模式的设置web.config是应该放在根目录下的。
    <authentication mode="Forms">
          <forms name="ASPXAUTH" loginUrl="../Member/Login.aspx" path="/" timeout="30" />
    在受限制的目录里的web.config
    <authorization>
          <allow roles="Admin" />
          <deny users="?" />
       </authorization>我的是可行的。不知道你搞清楚了没有?
      

  6.   

    建议你还是把login.aspx放到根目录下。
      

  7.   

    还是不行,会不会与别的环境有关系,Business虚拟目录.
      

  8.   

    我的环境不好设根目录,引用根目录都要用相对路径"../"
    我的文夹格式是这样的
    站点ip指向root
    root/project1/Business/default.aspx
    root/project1/Business/web.config
    root/project1/web.config
    root/project1/login.aspx
    root/project2/a/
    root/project3/b/
    实际上project1就相当于是当前站点的根目录
    用vs.net建立的asp.net应用程序,结构就是这样的
      

  9.   

    vasun,你好,我试了把login.aspx放在根目录
         <authorization>
            <allow roles="Admin" />
            <deny users="*" />
         </authorization>
    这样写就不能返回
         <authorization>
            <allow roles="Admin" />
            <deny users="?" />
         </authorization>
    这样写可以返回,但是不管用什么身份登陆都可以返回
      

  10.   

    可以参考aspnerforums的角色认证模式
      

  11.   

    http://forums.coder.cn/forum/topic.aspx?author_id=2&topic_id=12&category_id=11