2010-03-02 79 views
0

我有一个网站向所有用户显示信息,但如果您已登录,则可以访问更多信息和页面,然后未登录的用户可以访问。锁定某些页面并保留其他页面

我可以使用一些会话变量并将它们包含在每个页面中吗? 这是做什么最好的方法。

此外,什么是让用户保持登录状态的最佳方式,有点“记住我”复选框。保存在硬盘上的cookie?

+0

我不会把它保存在一个会话中,这样的人可以操纵一个会话,只需要改变这个变量,以获得更多的权利。您可以在用户数据库中创建权限字段,为每个页面创建一个权限字段。这样您就可以处理每个用户的每个页面,并且您可以处理大量不同的用户权限。你也可以考虑使用用户组,原则是一样的。仍然缺乏一些安全性,但从我的角度来看,有点更好。 – 2010-03-02 20:10:43

+1

您假定用户有权访问会话变量 - 他没有。什么是恶意攻击者就可以做的是改变它指向的会话cookie的,劫持用户的设置。他仍然无法访问会话变量,除了网页设计人员提供的内容。 – dar7yl 2010-03-02 20:17:02

回答

0

回答你的第一个问题。最简单的路线是在代码后面放置一些代码,根据您在会话中保存的内容设置可见标志的开启或关闭。

这可能会变得很复杂,所以我会玩一下,找出最适合您业务规则的东西。

回答你的第二个问题。您应该将某些内容保存在一个静态Cookie中,稍后可以参考。我个人喜欢在他们的cookie中保存一个GUID,我保存了一份本地数据库的副本。当有人重新访问该网站时,我寻找这个cookie。如果GUID存在并与我的数据库中某个人存储的GUID相匹配,我会自动将其登录。

0

会员和认证是每个网络应用与在所有的基本需求之一配备了.NET Framework提供,ASP.NET成员资格是一个这是大多数开发者创建它最有用的。如果你愿意,你可以实现自己的授权和认证,但建议使用Authentication and Authorization in ASP.NET

相关问题