ASP.NET(C#)实现未登录无法访问某些页面的功能,这里有个问题想请教下高手!

我在网上搜到一种方法:
当用户登入时把用户的id 等信息放入session ,到下个页面就检查该session是否为空
,如果null就跳会登入页面
登入时设置session :HttpSession session = request.getSession();

session.setAttribute("userId",用户ID);//设置你要是属性

需要验证用户是否登入 if((String)session.getAttribute("userId")==null)

我想问下,登录时设置的那一段代码session :HttpSession session =request.getSession(); session.setAttribute("userId",用户ID);写在哪里?写在控件隐藏代码区?还是写在Page_Load区?还是别的地方,第一次接触这个会话功能,不要见笑!还有小弟分不多,请笑纳O(∩_∩)O!!!跪等。。。

第1个回答  2011-05-04
在登录成功的时候写

在Page_Load中写判断,,判断Session是否为空,不为空则不需要登录,直接跳到登录成功页面
其它页面同理

在会话打开的时候,会自动生成 session的,不需要新建对象的啊追问

登陆页面的“会话”如何打开啊,我跪下啦!!!(╯﹏╰),还有几分钟熄灯啦啊啊啊。。。

追答

直接这样用呢,,session["user"]!=null 就说明有值,直接到登录成功页面
在登录按钮的事件里面写上
登录成功后,,session["user"]=user;

追问

还是教教我怎样打开会话功能啊,因为我还想加个注销用户功能,再说这个好像没有用啊,纠结。

追答

注销就只用在事件里面写上session["user"]=null;就可以了

第2个回答  2011-05-04
登陆页面里啊,判断账号密码正确后,就写在页面跳转的语句之前啊 ,if((String)session.getAttribute("userId")==null) 的验证就写在其他页面的Page_Load里。追问

没有用,显示找不到“HttpSession”是否缺少using指令集或程序集引用,System.Web.HttpRequest并不包含“getSession”的定义,等等问题。是不是要在类中编写其功能然后在引用啊?

追答

我一般这样写 登陆页面写Session["userid"]=123;
其他页面判断ifSession["userid"]==null)

追问

- -!投机倒把。。可是也没有用,登录页面的那个userid与其他页面的userid没有联系上,还是没用啊!我试了!!!

追答

哪是投机倒把了嘛,我这只是举个例子,123应该换成你想输入的值啊,一般是从数据库里读出的。要是不可以多用户登陆的话,哪个页面都应该一样的啊。

本回答被提问者采纳
第3个回答  2011-05-05
登录是不用判断session 只需把id存入session就行了,
其它页面都在Page_Load事件判断下
防止别人不经过登录页面直接跳转到你的主页面追问

是啊,问题是如何把ID存入session?跪求详解。。

追答

Session a=new Session("aaa");//把string类型的aaa放入名叫a的Session中

追问

a是自定义的变量?aaa代表用户的信息吗?用户信息包括用户名和密码啊,都要放进去才行,可不可以再详细点!!!

相似回答