1,在用户登录的时候,我记录了一个Session["gangwei"]用于保存该登录用户的岗位信息。在后面页面的权限判断的时候,要把这个Session与“附件收发”来比较,相同则执行,不同则跳出,我的代码如下:
string gangwei=(string)Session["gangwei"];
if(gangwei=="附件收发")
{...}
问题就出来了,我打印Session的值就是“附件收发”,但是这个判断出的结果是不同,请问,这个问题出在哪儿?
2,我要用Response.Redirect来实现页面的跳转,而这个要跳转的页面呢,是从数据库中读取出来的一个值,相当于就是一个变量。我的代码如下:
string name=Session["name"].ToString();
string searhsql="select * from 需处理任务 where 收到人='"+name+"'";
SqlCommand Searh= new SqlCommand(searhsql,Conn);
SqlDataReader tmReader = Searh.ExecuteReader();
if(tmReader.Read())
{
string url=tmReader["转到页面"].ToString();
Response.Redirect(url+".aspx");
}
数据库中,转到页面字段中就是存储的我要转到的页面的地址,不带后缀的。比如aa,bb等等
运行时,无法转到我所希望的页面,提示我是说页面找不到。但是我直接把URL写死,Response.Redirect("aa.aspx"),就能够到达我所希望的http://localhost/work/aa.aspx这个页面。(work是我的虚拟目录,.net好像是能把同一个项目中的文件,自动给加上前面的目录)
请问大家,这个情况,问题会出在什么地方呢?
麻烦大家多多提点意见,帮帮忙哦!!!!
6 个解决方案
#1
问题就出来了,我打印Session的值就是“附件收发”,但是这个判断出的结果是不同,请问,这个问题出在哪儿?
调试跟踪一下,一定是不相同的才这样
2 找不到这个页面,你看看ie地址栏,是不是这个url不对?正常这么写是没错的
调试跟踪一下,一定是不相同的才这样
2 找不到这个页面,你看看ie地址栏,是不是这个url不对?正常这么写是没错的
#2
说点题外话
楼主的ASPX写法基本和asp差不多还不如就用asp算了 完全没有用到aspx的扩展功能比如
string name=Session["name"].ToString();
string searhsql="select * from 需处理任务 where 收到人='"+name+"'";
典型的SQL注入。本身MSDN上标准写法也不是这样子写得 语句一长 查询参数一多的话 会很累
楼主的ASPX写法基本和asp差不多还不如就用asp算了 完全没有用到aspx的扩展功能比如
string name=Session["name"].ToString();
string searhsql="select * from 需处理任务 where 收到人='"+name+"'";
典型的SQL注入。本身MSDN上标准写法也不是这样子写得 语句一长 查询参数一多的话 会很累
#3
1 可能在其他地方对Session["gangwei"];付值了
2 使用Response.Redirect("/work/aa.aspx"),这样可以转到当前站点下的指定路径
如果asp.net2.0可以这样:Response.Redirect("~/aa.aspx"),这样可以转到当前应用的路径下(/work是你的虚拟目录,这个就等同于上面的那个("/work/aa.aspx"),而且你换了虚拟目录也不会有影响
2 使用Response.Redirect("/work/aa.aspx"),这样可以转到当前站点下的指定路径
如果asp.net2.0可以这样:Response.Redirect("~/aa.aspx"),这样可以转到当前应用的路径下(/work是你的虚拟目录,这个就等同于上面的那个("/work/aa.aspx"),而且你换了虚拟目录也不会有影响
#4
1,但是我打印出SESSION的值,就是“附件收发”啊,为什么比较出来就是不对呢,这个问题我想不明白
2,无法找到资源。
说明: HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。
请求的 URL: /work/weixiunengli .aspx
我查看这个页面的URL,发现是这样的http://localhost/work/weixiunengli%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.aspx
这是什么意思啊?
2,无法找到资源。
说明: HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。
请求的 URL: /work/weixiunengli .aspx
我查看这个页面的URL,发现是这样的http://localhost/work/weixiunengli%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.aspx
这是什么意思啊?
#5
我在数据库中设置的“转到页面”为char型,长度是100,看上面这个样子,似乎是多余的长度都被系统设置成空格了,所以才找不到页面。请问,我这个“转到页面”应该设置成什么类型啊?
#6
原来是该用varchar,第二个问题解决了!
那第一个问题该怎么解决呢!!!!
那第一个问题该怎么解决呢!!!!
#1
问题就出来了,我打印Session的值就是“附件收发”,但是这个判断出的结果是不同,请问,这个问题出在哪儿?
调试跟踪一下,一定是不相同的才这样
2 找不到这个页面,你看看ie地址栏,是不是这个url不对?正常这么写是没错的
调试跟踪一下,一定是不相同的才这样
2 找不到这个页面,你看看ie地址栏,是不是这个url不对?正常这么写是没错的
#2
说点题外话
楼主的ASPX写法基本和asp差不多还不如就用asp算了 完全没有用到aspx的扩展功能比如
string name=Session["name"].ToString();
string searhsql="select * from 需处理任务 where 收到人='"+name+"'";
典型的SQL注入。本身MSDN上标准写法也不是这样子写得 语句一长 查询参数一多的话 会很累
楼主的ASPX写法基本和asp差不多还不如就用asp算了 完全没有用到aspx的扩展功能比如
string name=Session["name"].ToString();
string searhsql="select * from 需处理任务 where 收到人='"+name+"'";
典型的SQL注入。本身MSDN上标准写法也不是这样子写得 语句一长 查询参数一多的话 会很累
#3
1 可能在其他地方对Session["gangwei"];付值了
2 使用Response.Redirect("/work/aa.aspx"),这样可以转到当前站点下的指定路径
如果asp.net2.0可以这样:Response.Redirect("~/aa.aspx"),这样可以转到当前应用的路径下(/work是你的虚拟目录,这个就等同于上面的那个("/work/aa.aspx"),而且你换了虚拟目录也不会有影响
2 使用Response.Redirect("/work/aa.aspx"),这样可以转到当前站点下的指定路径
如果asp.net2.0可以这样:Response.Redirect("~/aa.aspx"),这样可以转到当前应用的路径下(/work是你的虚拟目录,这个就等同于上面的那个("/work/aa.aspx"),而且你换了虚拟目录也不会有影响
#4
1,但是我打印出SESSION的值,就是“附件收发”啊,为什么比较出来就是不对呢,这个问题我想不明白
2,无法找到资源。
说明: HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。
请求的 URL: /work/weixiunengli .aspx
我查看这个页面的URL,发现是这样的http://localhost/work/weixiunengli%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.aspx
这是什么意思啊?
2,无法找到资源。
说明: HTTP 404。您正在查找的资源(或者它的一个依赖项)可能已被移除,或其名称已更改,或暂时不可用。请检查以下 URL 并确保其拼写正确。
请求的 URL: /work/weixiunengli .aspx
我查看这个页面的URL,发现是这样的http://localhost/work/weixiunengli%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20.aspx
这是什么意思啊?
#5
我在数据库中设置的“转到页面”为char型,长度是100,看上面这个样子,似乎是多余的长度都被系统设置成空格了,所以才找不到页面。请问,我这个“转到页面”应该设置成什么类型啊?
#6
原来是该用varchar,第二个问题解决了!
那第一个问题该怎么解决呢!!!!
那第一个问题该怎么解决呢!!!!