【问题标题】:How do I persist a user's profile in ASP.NET?如何在 ASP.NET 中保留用户的配置文件?
【发布时间】:2011-04-20 03:00:40
【问题描述】:

我是 ASP.NET 的新手 - 那么在 Web 应用程序中使用独立存储与会话状态的模式是什么?

我有一个用例,当用户登录应用程序时,我需要创建他的个人资料信息,该信息将在他的整个会话期间持续存在。

将其存储在会话中是否有意义,或者我应该使用独立存储(假设客户端在 Windows 机器上)

谢谢!

【问题讨论】:

  • 如果你使用和ORM技术进行持久化,比如实体框架的NHibernate。使用表单身份验证票 (cookie) 将用户 ID 存储在客户端。在 Authenticate_Request 事件中,根据 cookie 加载登录用户对应的 User 实体,并将其存储在请求上下文中,如 HttpContext.Current.Items

标签: asp.net asp.net-profiles


【解决方案1】:

ASP.NET 有一个 profile provider,用于存储用户的配置文件。

如果您真的只希望配置文件在会话期间持续存在,您可以使用自己的会话支持提供程序。

您的最后一条评论让我觉得您想在客户端机器上使用隔离存储;我认为您无法从没有 ActiveX 控件或类似功能的浏览器访问客户端上的隔离存储。

【讨论】:

    【解决方案2】:

    在 asp.net 应用程序中不使用隔离存储来存储配置文件信息 - 这通常用于在客户端运行的 .net 应用程序中。

    要启动并运行配置文件,请查看其中的任何一个帖子。Dino Esposito 的一篇很好 http://msdn.microsoft.com/en-us/magazine/cc163724.aspxhttp://msdn.microsoft.com/en-us/library/2y3fs9xs.aspx

    默认情况下配置在那里,但在 Visual Studio 中,您需要为您的 Web 应用程序打开管理站点,以确保一切都已设置。

    使用 Web 应用程序或网站还可以让您以不同的方式访问配置文件属性。一个会强烈键入它们,一个不会。

    【讨论】:

    • 发帖人对隔离存储有误解,我想你也是。隔离存储 IS 和 CAN 可用于 asp.net 应用程序。但是,当以这种方式使用时,它是服务器的存储,而不是客户端计算机的存储(除非它在 ​​Silverlight 应用程序中使用)。
    • @Gabriel 我认为您误解了上下文。我完全理解隔离存储,以及它缺乏任何真正的安全性、备份问题等。基于配置文件的原始帖子,asp.net 不是它的环境,它实际上没有用于任何体面的架构asp.net 应用程序。显然,您“可以”作为框架的一部分,因此可用于大多数使用该框架的环境。但是 - 对于配置文件,不推荐也不应该使用它。在说它在 asp.net 中为新用户使用“IS”之前,请阅读许多帖子以了解您的原因
    • 不应该。我的帖子专门针对标准配置文件的使用。 stackoverflow.com/questions/4726954/…
    • 我同意。它不应该用于用户配置文件。我的评论只是那不是你所说的。您要求我具体(针对新用户),但您并没有尽可能具体。您的回答说在 asp.net 应用程序中不使用隔离存储。那不是真的。我见过很多在处理上传文件时将其用作临时存储位置的情况。只是在你的答案中具体。如果你这样做,它将帮助更多的人。
    • 它不适用于个人资料信息。我将编辑并添加这三个词。帖子的其余部分都在现场......猜猜它应该投反对票
    猜你喜欢
    • 1970-01-01
    • 2012-09-21
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 2011-02-22
    相关资源
    最近更新 更多