Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用身份验证的ASP.NET MVC 2_Asp.net_Asp.net Mvc 2_Formsauthentication - Fatal编程技术网

使用身份验证的ASP.NET MVC 2

使用身份验证的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中)在数据库中

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


但是,当该用户想要创建只属于他的新项目(比如出售或其他)并且可以与用户创建的其他项目一起列出时,我可以使用此用户名(在FormsAuthentication中)在数据库中检查它,并用外键将该项连接到适当的用户,但如果用户名是唯一的,则该操作有效,因此我需要数据库表“user”中的ID列等附加信息来存储并在以后使用它,那么最安全和“最佳做法”是什么存储用户的附加信息并在以后使用它的方法,因为我提到的用户名在数据库中必须是唯一的,并且关于已登录用户的信息不够。

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

编辑:阅读您的评论后,如果您正在寻找“安全cookie”解决方案,请查看以下内容:

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


但我只是想澄清一下,会话对象对于您正在尝试做的事情来说似乎很棒,而且您不必担心安全性(对于一般的应用程序来说)

我发现会话不是做这些事情的最安全的方式。我有我的代码,但这是我现在需要的唯一功能。我在stackoverflow找到了一些示例,但想从其他角度再试一次为什么不?会话纯粹存储在服务器上,因此比将内容放在cookie上更安全。我使用Cookie保存用户数据,每次需要读取/更新时都必须对其进行加密/解密。我认为这种加密/解密方式很好,但我以前从未使用过,因为我是asp.net mvc新手。我发现了一些示例,但想听听关于以这种或其他方式实现此功能的其他想法……看看我的在上面的帖子中编辑。我想这就是你想要的。嗯,我读到它与我在这里找到答案的FormsAuthenticationTickets同样(在功能原则上):