【发布时间】:2012-07-13 15:06:06
【问题描述】:
我正在创建一个我希望用户注册的个人网站。我一直在查找需要采取的各种安全措施,并且很好奇我需要注意哪些主要事项。我决定不使用 ASP.NET Forms 身份验证,主要是为了自己创建身份验证过程的乐趣。这是我迄今为止所做的:
- 我有一个 MySQL 数据库,用于存储用户的登录信息,例如密码和盐的哈希值
-
登录后,设置一个与其用户名相同的会话——这让我想到了一个问题:这是在不使用表单身份验证的情况下跟踪登录用户的最佳方式吗?例如,设置会话是这样的:
Session["User"] = username;
有没有更好的方法来跟踪登录用户?或者这是一种可以接受但仍然安全的处理方式?
【问题讨论】:
-
您可能需要设置上下文的(自定义)主体。
-
所以你是为了好玩而重新发明轮子?很公平,我也做过同样的事情。
Forms Authentication的核心其实很简单,它用经过身份验证的用户信息存储了一个加密的烹饪。这整个过程,包括存储什么信息以及如何存储,都可以定制。使用 Session 状态本质上是在做同样的事情,只是用户信息存储在服务器上。我真的建议自定义Forms Authentication而不是从头开始。 -
如果您甚至不能自己开始,那么您就没有编写自己的身份验证系统的业务,您将错误地实施它。至少实现内置系统并弄清楚它是如何工作的。
-
我已经开始并且它几乎完成了......如果我不使用表单身份验证,我只是在寻找有关跟踪登录用户的最佳方法的建议。但感谢您的关注。
-
确保会话密钥或 cookie,或者您实现它的方式是通过 HTTPS 传递的。
标签: c# asp.net security authentication