首页 新闻 会员 周边

判断用户是否已经登录

0
悬赏园豆:10 [待解决问题]

  现在我有一个需求,在mainpage.html中判断用户是否已经登录。现在我的做法是,加载页面的时候,在document.ready()方法内用ajax去请求服务器是否存在session,没有的话,就widows.location("login.html")。但是,这样不是十分的合适。因为在document.ready()方法前页面已经加载了,所以会显示mainpage.html的内容。所以整体的效果是用户先看到mainpage.html,然后才跳转到login.html的。

   有没有一种更加好的方法来避免上述情况的出现呢?

mcfer的主页 mcfer | 初学一级 | 园豆:144
提问于:2015-03-30 15:03
< >
分享
所有回答(8)
0

asp.net webform我是不会啦!但asp.net mvc就很简单,一行代码+web.config配置,就自动了。

时光刺客 | 园豆:60 (初学一级) | 2015-03-30 15:11

MVC知识接触过啦

支持(0) 反对(0) mcfer | 园豆:144 (初学一级) | 2015-03-31 11:47
0

是asp.net就好。

1、启用form认证机制,一切都那么简单。

2、在mainpage.html的访问请求里,判断是否已经登录,然后执行必要的跳转。前提:asp.net,html貌似不是。

519740105 | 园豆:5810 (大侠五级) | 2015-03-30 16:39

我用的是html,没有用aspx,但是后台还是.net

支持(0) 反对(0) mcfer | 园豆:144 (初学一级) | 2015-03-31 11:48

@mcfer: 静态页面,没有被.net处理,是不好弄的。

如果你一定要这样,可以:

1、定义一个空页面(或消息等待页面之类的),然后通过ajax获取登录状态,再切换到mainpage或login

2、将mainpage的内容先隐藏,通过ajax检测登录状态,登录则显示内容,否则跳到login

3、mainpage页面置空,只一段ajax检测登录状态,登录则通过ajax读取mainpage内容,否则跳转到login

支持(1) 反对(0) 519740105 | 园豆:5810 (大侠五级) | 2015-03-31 12:37
0

在前端用异步方式判断的话肯定会出现你这样的问题。改成同步方式即可

nicky0227 | 园豆:1069 (小虾三级) | 2015-03-30 23:50

同步?是提交表单吗?

支持(0) 反对(0) mcfer | 园豆:144 (初学一级) | 2015-03-31 11:48
0

我曾经开发过相关的项目,使用的jsp,ssh。

在jsp中针对你遇到的问题是用Filter的方式来设置页面权限的。

web.xml中对网站的路径进行配置,这样就可以避免你遇到的问题。

一蓑烟雨-碑 | 园豆:204 (菜鸟二级) | 2015-03-31 00:55

谢谢你。用的是asp.net。。。

支持(0) 反对(0) mcfer | 园豆:144 (初学一级) | 2015-03-31 11:48
0

网页加载是从上往下加载的,把js放到前面,不写在document.ready()里面

10:00 | 园豆:232 (菜鸟二级) | 2015-03-31 10:27

但是在什么时候执行呢?

支持(0) 反对(0) mcfer | 园豆:144 (初学一级) | 2015-03-31 11:49

@mcfer: 页面加载前

支持(0) 反对(0) 10:00 | 园豆:232 (菜鸟二级) | 2015-03-31 22:20
0

直接在页面头部加载一个js 资源,来判断是否登录就可以了

 <script src="/info.ashx"></script> 

 info.ashx 文件中 判断是否登录,可以直接跳转登录页面;

还可以输出js 插入用户的信息到页面中

阿K&LiveCai | 园豆:514 (小虾三级) | 2015-03-31 11:06

谢谢你。还有这种用法啊?我试一下。

支持(0) 反对(0) mcfer | 园豆:144 (初学一级) | 2015-03-31 11:50
0

那就不要用js去验证就好了呀,js发异步肯定有响应时间的,或者你不要发异步,就查cookie值先。

田想兵 | 园豆:244 (菜鸟二级) | 2015-05-11 17:28
0

用asp.mvc自带的identity啊,还可以添加角色!好用的令人发指!现在已经爱不释手!

youtao | 园豆:4 (初学一级) | 2015-05-12 13:45
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册