求判断用户登录正确思路。。 急。。急。。

Y2010M11D24 2011-03-29 11:43:23
引用
1.首先介绍下大致的情况。
我做的是公司内部使用的网站,其中包括几个部门主页,公司主页。
2.想要实现的效果 (单点登录)
要实现单点登录,就是在部门页面或主页中登录成功既不需要再次登录,记录用户的状态。
由于内部使用,并且时间比较紧张,就没有利用数据库来判断,用户是否登录。
如果像上面这样写,还要时刻判断用户的登录状态,较为繁琐繁琐,所有就没有用此方法。(目前大家也不要推荐我使用此方法
3.问题点
当用户打开公司主页时,判断用户是否登录?(这里我说下我的想法。)
//////////////此处为公司主页
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Session["IsLogin"] = "";
}
}

这里声明 Session["IsLogin"],当我登录成功后改变 Session["IsLogin"]的状态,变为True。
可是当我进入部门主页时,拥有此状态,是没有毛病的,但是当我在返回到公司主页时, Session["IsLogin"]再次变成空值。
所以用户的登录状态也就消失了。
这个问题该怎么解决。


希望大家看清楚题目在做回答。一定要符合内容呦!



...全文
145 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Y2010M11D24 2011-03-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 yan267 的回复:]
o(︶︿︶)o 唉,单点登录的意思不是登录成功既不需要再次登录,记录用户的状态。

另外我不懂的是不用数据库判断,你如何知道登录成功?

这里声明 Session["IsLogin"],当我登录成功后改变 Session["IsLogin"]的状态,变为True。
可是当我进入部门主页时,拥有此状态,是没有毛病的,但是当我在返回到公司主页时, Session["IsLogin"]再次变……
[/Quote]

1.也许是我不理解单点登录的意思,那麻烦你解释下,好吗,我想听听您认为的单点登录是什么样的。
2.我怎么判断用户登录你就不用管了,我说的不用数据库判断,是代表登录员工登录成功后,特有的一张表用来记录登录状态,而我没有这么写。
3.我知道是再次回到页面时,session为空了,但是现在讨论的问题是怎样避免,。我知道错误在哪里,不是让你来挑我毛病来了。


别刺激我啊。
yan267 2011-03-29
  • 打赏
  • 举报
回复
o(︶︿︶)o 唉,单点登录的意思不是登录成功既不需要再次登录,记录用户的状态。

另外我不懂的是不用数据库判断,你如何知道登录成功?

这里声明 Session["IsLogin"],当我登录成功后改变 Session["IsLogin"]的状态,变为True。
可是当我进入部门主页时,拥有此状态,是没有毛病的,但是当我在返回到公司主页时, Session["IsLogin"]再次变成空值。

公司主页刷新后会执行


if (!IsPostBack)
{
Session["IsLogin"] = "";
}

这块代码。Session就被赋值为""了。

int64 2011-03-29
  • 打赏
  • 举报
回复
如果在同一个一级域名下,用Cookie保存信息
Y2010M11D24 2011-03-29
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 yan267 的回复:]
引用 3 楼 y2010m11d24 的回复:
引用 2 楼 yan267 的回复:
o(︶︿︶)o 唉,单点登录的意思不是登录成功既不需要再次登录,记录用户的状态。

另外我不懂的是不用数据库判断,你如何知道登录成功?

这里声明 Session["IsLogin"],当我登录成功后改变 Session["IsLogin"]的状态,变为True。
可是当我进入部门主页时,拥有此状态……
[/Quote]


像你说的可以了,之前都是session["IsLogin"].tostring()=="false" ,这样写判断的,使用了tostring自然就需要声明session了。

如果session["IsLogin"]==""&&session["IsLogin"]==null 这样写判断,就可以了。
yan267 2011-03-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 y2010m11d24 的回复:]
引用 2 楼 yan267 的回复:
o(︶︿︶)o 唉,单点登录的意思不是登录成功既不需要再次登录,记录用户的状态。

另外我不懂的是不用数据库判断,你如何知道登录成功?

这里声明 Session["IsLogin"],当我登录成功后改变 Session["IsLogin"]的状态,变为True。
可是当我进入部门主页时,拥有此状态,是没有毛病的,但是当我在返回到公司主页时, Se……
[/Quote]

你可以优先判断Session是否为空,再赋值为"",

我的意思就是你这段代码判断有问题,因为刷新页面就清空了,所以要做一个判断,不是挑你毛病。。。

你清空的意义在于退出吧,另外做一个按钮给客户点击退出就行了,不要在页面做这样的赋值。

Y2010M11D24 2011-03-29
  • 打赏
  • 举报
回复
string str=session["IsLogin"].ToString();
if(str.Equals("False"))
{
可以查看此处内容
}
else
{
请先登录
}



如果用户没有登录,那么此session就没有声明
Y2010M11D24 2011-03-29
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 hebeijg 的回复:]
引用 8 楼 y2010m11d24 的回复:
引用 6 楼 li_1042237864 的回复:
把 Session["IsLogin"] = ""; 去掉就不会为空了...

下面要判断session的值是为false还是true,如果此处去掉,那么下面就会提示没有声明,。

上面的链接,虽然很有帮助,但是我还没有了解多少,感觉没有多少帮助。


你是怎么判断session的……
[/Quote]


string str=session["IsLogin"].ToString();
if(str.Equals("False"))
{
可以查看此处内容
}
else
{
请先登录
}
貌似也就这样了。
hebeijg 2011-03-29
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 y2010m11d24 的回复:]
引用 6 楼 li_1042237864 的回复:
把 Session["IsLogin"] = ""; 去掉就不会为空了...

下面要判断session的值是为false还是true,如果此处去掉,那么下面就会提示没有声明,。

上面的链接,虽然很有帮助,但是我还没有了解多少,感觉没有多少帮助。
[/Quote]

你是怎么判断session的呢,我觉得不应该提示没有声明的
子夜__ 2011-03-29
  • 打赏
  • 举报
回复
Session["IsLogin"] = "";

SSO
Y2010M11D24 2011-03-29
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 li_1042237864 的回复:]
把 Session["IsLogin"] = ""; 去掉就不会为空了...
[/Quote]
下面要判断session的值是为false还是true,如果此处去掉,那么下面就会提示没有声明,。

上面的链接,虽然很有帮助,但是我还没有了解多少,感觉没有多少帮助。
纯唇Yu弄 2011-03-29
  • 打赏
  • 举报
回复
把 Session["IsLogin"] = ""; 去掉就不会为空了...
纯唇Yu弄 2011-03-29
  • 打赏
  • 举报
回复

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧