2012-02-08 186 views
1

这里是我的问题,如果我可以这样调用它。我已经实现了在asp.net mvc 2.0中的自定义memebership提供程序的身份验证。一切运作良好,但我有一个问题。当用户登录他提供了它的用户名和密码,我通过MSSQL中的数据库进行检查,然后验证用户并传递并使用FormsAuthentication将UserName设置为配置文件信息。使用身份验证的ASP.NET MVC 2

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

回答

2

难道你不能在会话中存储用户对象(或任何其他信息)吗?或者在客户端使用cookie(如果你需要在用户关闭浏览器之后坚持登录状态等)?让我知道你是否需要特定的例子。

编辑:看了您的意见后,如果您正在寻找一个“安全cookie”的解决方案来看看这个:http://www.codeproject.com/Articles/13665/HttpSecureCookie-A-Way-to-Encrypt-Cookies-with-ASP

我用它来存储用户的ID(只有他的ID)。当我检索这个cookie时,我加载了给定他的ID的用户。一些内存中缓存允许我避免在每个请求中加载用户。

但只是想澄清,会话对象似乎对你正在做的事情很好+你不必担心安全性(对于普通的应用程序来说)。

+0

我发现会话不是最安全的方式来做这些东西..我有我的代码,但这是我现在需要的ony功能..我在这里找到了一些在stackoverflow的示例,但想给另一个尝试从其他角度 – 2012-02-09 09:45:38

+0

为什么不呢?该会话纯粹存储在服务器上,因此比将内容放在cookie上更安全。我使用cookies来保存用户数据,并且每次需要读取/更新时都必须加密/解密它们。 – Yannis 2012-02-09 13:00:20

+0

加密/解密的方式,我对它的好方法,但我从来没有使用过,因为我是新的asp.net mvc。我发现了几个例子,但想听到其他想法实现这个功能或其他方式... – 2012-02-09 17:08:29