【问题标题】:ASP.NET MVC 2 using Authentication使用身份验证的 ASP.NET MVC 2
【发布时间】:2012-02-08 22:16:22
【问题描述】:

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

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

【问题讨论】:

    标签: asp.net asp.net-mvc-2 formsauthentication


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我发现会话不是做这些事情的最安全方式..我有我的代码,但这是我现在需要的唯一功能..我在 stackoverflow 找到了一些示例但想要从另一个角度再试一次
    • 为什么不呢?会话纯粹存储在服务器上,因此它比将内容放在 cookie 上更安全。我使用 cookie 来保存用户数据,并且每次需要读取/更新它们时都必须对其进行加密/解密。
    • 我认为这种加密/解密方式是个好方法,但我以前从未使用过它,因为我是 asp.net mvc 的新手。我发现了几个例子,但想听听关于实现此功能的其他想法或其他方式...
    • 看看我在上面帖子中的编辑。我认为这是您正在寻找的。​​span>
    • 嗯,我读到它也与 FormsAuthenticationTickets 相同(在功能原则上),我在这里找到了答案:stackoverflow.com/questions/7524136/…stackoverflow.com/questions/8547107/…danharman.net/2011/07/07/…
    猜你喜欢
    • 1970-01-01
    • 2014-03-20
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    • 2015-04-27
    • 1970-01-01
    • 1970-01-01
    • 2011-02-06
    相关资源
    最近更新 更多