三个页面a,b,c
a是正在操作的页面
b是a页面提交操作后要跳转的页面
c是登陆页面情况是这样的,a 要跳转到b,但需要检测是否登陆,如果没登陆则要跳到c ,在c登陆后又要自动跳到b.当然,还有很多情况,如d(同a)要跳到e(同b),也要检测是否登陆。就是说c 是公用的。
这种情况怎么处理呢?

解决方案 »

  1.   

    要登陆的页中:
    if 未登陆
      Response.Redirect("c.aspx?returnurl="+Server.UrlEnCode(Request.Url.ToString()));
    C中登陆后strurl=Server.UrlDeCode(Request.QueryString["returnurl"]);
    Response.Redirect(strurl);
      

  2.   

    1.用formauthentication方式认证,在web.config里加入://login.aspx换成你的c页面。
    <authentication mode="Forms">
    <forms name="login" path="/" loginUrl="login.aspx" protection="All" timeout="60"></forms>
    </authentication>2.login页面(你的c页面)中判断用户身份之后,使用
    FormsAuthentication.RedirectFromLoginPage("Username",false);
    转跳回原页面(需要检测是否登陆,如果没登陆则要跳到c ,在c登陆后又要自动跳到b.)
      

  3.   

    lxg13(翔子) 的方法可以也可以,但是没有我说的方便,我说的方法不用判断用户是否登陆,系统会自动判读。如果页面多的话用这个方法是非常方便的,当然如果你需要一些特殊控制也可以自己判读是否登陆。
      

  4.   

    to:tmfc()
    那有的页面不需要验证呢?这样的话,系统对每个页面都验证了啊。
      

  5.   

    protection="All"里面可以设置你需要验证的页面。
      

  6.   

    用session也可以做验证
    if (session["username"] == null)
      Response.Redirect("c.aspx")
    else
      //其他处理你如果有很多页面又不想每次判断SESSION,那你就做个用户控件,把上面的代码放到它的Page_Load()里面,需要的页面就把这个用户控件加上就可以了。
      

  7.   

    你如果有很多页面又不想每次判断SESSION,那你就做个用户控件,把上面的代码放到它的Page_Load()里面,需要的页面就把这个用户控件加上就可以了。这个方法要注意不能在页面的page_load事件里面使用Session的内容,因为页面的Page_Load事件在用户控件的Page_Load前发生,此时Session有可能不存在或者失效,一定要使用的话还是要在页面上判断一下Session是否存在的。
      

  8.   

    ===============================to:tmfc()========================
    1.用formauthentication方式认证,在web.config里加入://login.aspx换成你的c页面。
    <authentication mode="Forms">
    <forms name="login" path="/" loginUrl="login.aspx" protection="All" timeout="60"></forms>
    </authentication>2.login页面(你的c页面)中判断用户身份之后,使用
    FormsAuthentication.RedirectFromLoginPage("Username",false);
    转跳回原页面(需要检测是否登陆,如果没登陆则要跳到c ,在c登陆后又要自动跳到b.)
    ===================================================
    2中的Username是什么呢?在login页面中可能需要处理登陆事件,验证通过后需要自动跳转回b页面。你说的protection="all",如果是有两个页面是否写成,protection="c.aspx" protection="e.aspx"呢?请指教。
      

  9.   

    ===============================to:tmfc()========================
    我加了你的1,但是a为什么会跳到c页面呢?什么条件。
      

  10.   

    不好意思我搞错了protection="all"并不能这样修改,它不是指保护哪个页面。
    用了这种验证方法只能保护整个应用程序,不能选择几个页面来保护。
    如果你要实现保护部分页面还是用Session来保存用户信息,然后自己处理登陆事件。Username就是登陆的用户名,一般的情况下就用用户登陆时输入的用户名即可。