使用身份验证的ASP.NET MVC 2
如果我可以这样说的话,这就是我的问题。我已经在asp.net mvc 2.0中使用自定义memebership提供程序实现了身份验证。一切正常,但我有一个问题。当用户登录时,他提供了用户名和密码,我通过MSSQL中的数据库对此进行检查,然后我验证用户,并传递和使用FormsAuthentication设置用户名作为配置文件信息使用身份验证的ASP.NET MVC 2,asp.net,asp.net-mvc-2,formsauthentication,Asp.net,Asp.net Mvc 2,Formsauthentication,如果我可以这样说的话,这就是我的问题。我已经在asp.net mvc 2.0中使用自定义memebership提供程序实现了身份验证。一切正常,但我有一个问题。当用户登录时,他提供了用户名和密码,我通过MSSQL中的数据库对此进行检查,然后我验证用户,并传递和使用FormsAuthentication设置用户名作为配置文件信息 但是,当该用户想要创建只属于他的新项目(比如出售或其他)并且可以与用户创建的其他项目一起列出时,我可以使用此用户名(在FormsAuthentication中)在数据库中
但是,当该用户想要创建只属于他的新项目(比如出售或其他)并且可以与用户创建的其他项目一起列出时,我可以使用此用户名(在FormsAuthentication中)在数据库中检查它,并用外键将该项连接到适当的用户,但如果用户名是唯一的,则该操作有效,因此我需要数据库表“user”中的ID列等附加信息来存储并在以后使用它,那么最安全和“最佳做法”是什么存储用户的附加信息并在以后使用它的方法,因为我提到的用户名在数据库中必须是唯一的,并且关于已登录用户的信息不够。您不能在会话中存储用户对象(或您拥有的任何附加信息)吗?或者在客户端使用cookie(如果您需要在用户关闭浏览器等之后保持登录状态)?如果你需要具体的例子,请告诉我 编辑:阅读您的评论后,如果您正在寻找“安全cookie”解决方案,请查看以下内容: 我使用它来存储用户的id(只有他的id)。当我检索这个cookie时,我加载给定id的用户。一些内存缓存允许我避免在每个请求上加载用户
但我只是想澄清一下,会话对象对于您正在尝试做的事情来说似乎很棒,而且您不必担心安全性(对于一般的应用程序来说) 我发现会话不是做这些事情的最安全的方式。我有我的代码,但这是我现在需要的唯一功能。我在stackoverflow找到了一些示例,但想从其他角度再试一次为什么不?会话纯粹存储在服务器上,因此比将内容放在cookie上更安全。我使用Cookie保存用户数据,每次需要读取/更新时都必须对其进行加密/解密。我认为这种加密/解密方式很好,但我以前从未使用过,因为我是asp.net mvc新手。我发现了一些示例,但想听听关于以这种或其他方式实现此功能的其他想法……看看我的在上面的帖子中编辑。我想这就是你想要的。嗯,我读到它与我在这里找到答案的FormsAuthenticationTickets同样(在功能原则上):