譬如现在我的login.aspx是登陆判断页面,如果我一开始是进入的AAA.aspx,如果没有登陆,则转到login.aspx页面,然后登陆成功后,直接转入刚才的AAA.aspx页面,这里是不是可以用到FormsAuthentication.GetRedirectUrl()啊,请问怎么用啊,在哪儿判断。谢谢

解决方案 »

  1.   

    首先要在web.config里面进行配置,限制匿名用户,还有一个就设置跳转页面,然后页面部份,login.aspx里面验证用户登陆成功,就调用,FormsAuthentication。就行。
      

  2.   

    <authentication mode="Forms">
          <forms name="·name" loginUrl="admin/login.aspx" timeout="30"></forms>
        </authentication>  <!--  授权 
               此节设置应用程序的授权策略。可以允许或拒绝不同的用户或角色访问
              应用程序资源。通配符: "*" 表示任何人,"?" 表示匿名
              (未经身份验证的)用户。
        -->    <authorization>
            <allow users="*" /> <!-- 允许所有用户 -->
                <!--  <allow     users="[逗号分隔的用户列表]"
                                 roles="[逗号分隔的角色列表]"/>
                      <deny      users="[逗号分隔的用户列表]"
                                 roles="[逗号分隔的角色列表]"/>
                -->
        </authorization>
      

  3.   

    登入成功后。
    System.Web.Security.FormsAuthentication.SetAuthCookie(username,true);
      

  4.   

    先谢谢了。
    还是不是很懂,譬如现在有AAA.aspx跟BBB.aspx两个页面,其中AAA.asp页面是必须登陆后才能进入看的,BBB.aspx不用,现在有两点不明白:
    1.我没有登陆直接进入AAA.aspx页面,将根据<forms name="·name" loginUrl="login.aspx" timeout="30"></forms>,转向login.aspx,然后登陆成功后,怎么会直接进入刚刚我一开始进入的AAA.aspx页面,这是根据哪儿的代码或者配置啊?2.AAA.asp页面是必须登陆,而BBB.aspx不用,他们在哪儿设置这种区别?
      

  5.   

    1, 转向login.aspx,然后登陆成功后,怎么会直接进入刚刚我一开始进入的AAA.aspx页面,这是根据哪儿的代码或者配置啊?---不用配置,你可以看转到登录页面时地址栏显示的2,if (HttpContext.Current.User.Identity.IsAuthenticated)
            {
                Response.Write("yz");
            }
            else
            {            Response.Write("myz");
            }
      

  6.   

    谢谢上面的,这个我看到了,我现在是想问为什么,譬如为什么我登陆AAA.asp失败后转向login.aspx后,地址栏login.aspx后面为什么多出了那些乱码,这儿是从哪儿设置的啊?
      

  7.   

    譬如我现在建立一个login.aspx页面,想必须通过验证才可以进入,我现在修改web.config文件,添加:    <authentication mode="Forms">
          <forms name=".abcd" loginUrl="login.aspx" timeout="90" protection="All"></forms>
        </authentication>
    ,然后我又建立了一个123.aspx页面,现在当我启动时直接进入123.aspx页面时,为什么可以直接进入,而不是转向到login.aspx页面,哪里还应该设置啊?
      

  8.   

    是这样的.
    在.net的web.config中你可以设置哪些页,或者哪些文件夹是要受到保护的,以及如何保护.比如说123.aspx这个页面,所有人可以访问.那么相信的配置即是(allow user="*",当然实际上每个页面默认情况下都是可以访问的,)所以,你应该只保护那些需要被保护的页或文件夹.这就是为什么你可以直接进入123.aspx而不会转到login.aspx中,因为123.aspx不是被保护的.
    你可以建一个456.aspx中,在web.config中做相应的设置,将456.aspx设置为 (deny user="?",allow user="*",这个意思就是所有的匿名都被拒绝,允许所有用户来访问,当然实际上是仅有授权用户才可以访问,如何授权呢,就需要你登录了,你登录后,会发放一个许可,也就票据了,如果你自己写登录界面的话,需要这样SetAuthCookie发许可,如果是用login控件的话就不用了,它自动发放许可) 这样应该明白一些了吧.