CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

为什么我点击超链结打开新页面会重新回到登陆页?

楼主shengyufeng()2006-12-02 23:05:25 在 .NET技术 / ASP.NET 提问

在DataGrid中设置一个模板列,是超链结<asp:HyperLink   runat="server"   Text="修改"   NavigateUrl="mody.aspx"   Target="_blank"></asp:HyperLink>,点击超链结打开新页面mody.aspx,可奇怪的是会回到初始的登陆验证页面,如果把mody.aspx改名为mody.htm就没这个问题。是不是Session的问题啊?  
  顺便把其他的问题也问了吧:  
  在mody.aspx中有几个TextBox控件,可以输入一些数据,现在要点“修改”按钮把部分控件中的值传回到原来的页面中,以此来实现修改数据库表A中的某些字段。同时,在这个mody.aspx中也要打开另一个数据库表B,将另一些控件的值写入到这个数据库表中,请问如何实现最简单?用对话框还是网页比较好,最好有源代码供学习。  
  谢谢 问题点数:20、回复次数:14Top

1 楼sc_horal()回复于 2006-12-02 23:12:56 得分 0

多半是session的问题  
  后面的你说的就不清楚   了,  
  你好好看看session吧  
   
  还你用IsPostBack时Top

2 楼shengyufeng()回复于 2006-12-07 11:15:00 得分 0

再顶一次:后面的其他问题已经解决,现在就是重新登陆问题很恼火,只要不打开新窗口,比如用按钮,事件处理里面写Response.Redirect("mody.aspx")也没问题,在session方面不了解,希望能得到解答!Top

3 楼libinguest(上善若水)回复于 2006-12-07 11:45:35 得分 0

sessionTop

4 楼shengyufeng()回复于 2006-12-07 11:57:11 得分 0

怎么解决呢,在IsPostBack里面做工作?Top

5 楼WinnerPan()回复于 2006-12-07 12:06:41 得分 0

session  
  Top

6 楼shengyufeng()回复于 2006-12-07 13:14:09 得分 0

怎么说来说去就是"session"几个字呢,我对这个的确不太懂,希望各位能说得具体点。我的情况是在A.aspx中有一个按钮,针对该按钮的事件处理程序里面有一个Response.Write("<script>window.open('B.aspx')</script>"),希望能打开新页面B.aspx。可是打开的是原始登陆页面login.aspx,在地址栏里面显示的是"http://login.aspx?ReturnUrl=%2fB.aspx",  
  不过如果把B.aspx改成B.htm就没有问题。  
  在B.aspx里面只是放了几个控件,没有写任何代码。Top

7 楼shengyufeng()回复于 2006-12-07 13:34:18 得分 0

是不是在A.aspx中要写点什么代码?比如Session("User")=....的,然后再打开新页面?我估计应该是说明该页面已经经过了登陆验证了吧?  
  高手们,请帮忙吧,这个问题困绕很久了,先给个代码让我过了这关,以后再慢慢去学习。一定给分!Top

8 楼huazi4995(華仔)回复于 2006-12-07 14:03:33 得分 0

你是不是用浏览器打开的,要是不是用浏览器打开的话,会出现这样的问题,我以前遇到过Top

9 楼hao1geren(一个好人)回复于 2006-12-07 14:13:02 得分 0

mody.aspx  
  里面的关于session判断的部分有问题,  
  出错了就跳到登陆叶面,Top

10 楼shengyufeng()回复于 2006-12-07 14:42:40 得分 0

to   一个好人:  
        我就没有做什么判断,就是不知道怎么下手啊.现在正在看Session方面的贴,补一下相关常识.Top

11 楼qingyingqy()回复于 2006-12-07 14:54:57 得分 0

session是一个类似“全局”变量的玩意,不过这个全局有点大大到你打整个网站时就等于创建了一个Session。不过我估计不是Session的问题,因为一般Session的默认设置都是30分钟,你可以看一下你的Web.Config中的配置,不可能问题出在那了,也有可能是Application_error事件触发时直接导航到登陆页面了。Top

12 楼shengyufeng()回复于 2006-12-07 17:11:35 得分 0

看了半天,还是迷糊,上面qingyingqy讲的问题应该不存在.  
  我看贴的感想是:打开新页面等于是开始了一次新的会话,SessionID就不同了,程序认为你还没有登陆,所以转到login.aspx去了,是不是这样理解?  
  要怎么样让程序"记住"我已经登陆了?Top

13 楼shengyufeng()回复于 2006-12-08 10:04:16 得分 0

我的登陆页面login.aspx:  
      if   (验证通过)  
              {  
                    System.Web.Security.FormsAuthentication.SetAuthCookie(strUsr,false);  
                              Response.Redirect("sj.aspx");  
                }  
   
  上面的Response.Redirect("sj.aspx")并没有新开窗口,因此一切正常,如果把这句改成Response.Write("<script>window.open('sj.aspx')</script>"),即新开窗口,就会再次打开登陆页面login.aspx,看来是新开窗口的问题,怎么解决这个问题呢?前面SetAuthCookie(strUsr,false)已经创建了验证cookie了。Top

14 楼shengyufeng()回复于 2006-12-08 10:10:17 得分 0

嘿嘿,如果把SetAuthCookie(strUsr,false)改成SetAuthCookie(strUsr,true),就正常了,这是因为把验证cookie设置了永远有效,看来的确是新开的窗口没有得到验证cookie的问题,但设置为永远有效总不太好吧,不安全,有什么解决办法吗?在新开的窗口里面(如sj.aspx)里面要写什么代码?Top

相关问题

关键词

得分解答快速导航

  • 帖主:shengyufeng

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo