1

如果我可以这样称呼它,这就是我的问题。我已经在 asp.net mvc 2.0 中使用自定义成员资格提供程序实现了身份验证。一切正常,但我有一个问题。当用户登录时,他提供了用户名和密码,我检查了这个通过 MSSQL 中的数据库,然后我验证用户并传递并使用 FormsAuthentication 仅将 UserName 设置为配置文件信息。

但是,当该用户想要创建仅属于他并且可以与用户创建的其他项目一起列出的新项目(比如说出售或其他东西)时,我可以使用此用户名(在 FormsAuthentication 中)在数据库中检查它并将该项目连接到具有外键的适当用户,但如果用户名是唯一的,那么我需要额外的信息,比如数据库表“用户”中的 ID 列来存储和使用它,所以什么是最安全和“最佳实践”的方式来存储用户的附加信息稍后再使用它,因为我提到的用户名在数据库中必须是唯一的,并且关于登录用户的信息不足。

4

1 回答 1

2

您不能将用户对象(或您拥有的任何其他信息)存储在会话中吗?还是在客户端使用 cookie(如果您需要在用户关闭浏览器等之后保持登录状态)?如果您需要具体示例,请告诉我。

编辑:阅读您的评论后,如果您正在寻找“安全 cookie”解决方案,请查看: http: //www.codeproject.com/Articles/13665/HttpSecureCookie-A-Way-to-Encrypt-Cookies-与-ASP

我用它来存储用户的 id(只有他的 id)。当我检索这个 cookie 时,我会根据他的 id 加载用户。一些内存缓存允许我避免在每个请求上加载用户。

但只是想澄清一下,会话对象似乎非常适合您尝试做的事情+您不必担心安全性(对于普通应用程序而言)。

于 2012-02-08T22:40:36.183 回答