2

我的网站使用会话变量来存储登录状态,例如 Session["User"],

并在每个页面中检查此会话变量,例如:

If (Session["User"] == null ) Response.Redirect("loginPage.aspx");

FormAuthentication 更安全吗?

谢谢。

4

1 回答 1

2

第一件事是它比正常会话更安全。存在会话劫持的可能性。您可以查看以下链接以获取更多详细信息。

http://msdn.microsoft.com/en-us/library/ms972969.aspx

http://peterwong.net/blog/?p=136

即使您没有登录,也可以使用会话。您唯一需要的是为用户生成的会话 ID。

以下是其他优点。

1)表单身份验证可以支持基于角色的授权,因此如果您不希望用户访问某些仅针对管理员的文件夹,那么您可以通过表单身份验证轻松完成此操作,而会话则需要手动操作。

2) 您可以使用具有成员资格和表单身份验证的 asp.net 内置控件创建登录-注销功能。

3)它会生成一个身份验证令牌,因此您不必每次都像在会话中那样手动检查。

在会话中维护关键信息不是一个好主意。希望这会帮助你。我强烈建议使用表单身份验证或任何最新技术(如 ASP.NET Identity)进行身份验证。

于 2014-05-19T13:49:18.587 回答