繁体   English   中英

如何在asp.net中存储用户数据?

[英]how to store user data in asp.net?

我正在ASP.NET中开发一个电子贸易Web应用程序。

要购买任何东西,首先,用户必须登录。 假设用户登录并开始购物。 当用户点击btnBuy时 ,我正在将该项目添加到集合中。 到目前为止,一切正常。

假设用户购买了东西, bought means here, i added item chosen to the which contains all the items chosen bought means here, i added item chosen to the 购物篮 which contains all the items chosen ,然后关闭Web浏览器。 我要做的是存储此数据,以便在用户回来时能够检索此数据。 因此,用户可以在离开的地方取货。

到目前为止,我想到了两种选择:

1-)使用XML文件检索数据:我可以使用XML文件检索数据,但是,这里的问题是当用户删除所选项目时,我需要解析所有XML文件以删除所选项目,嗯,我认为这是昂贵。它使应用程序非常慢。

2-)存储在数据库中:我想存储在数据库中,但是我认为它也很昂贵。 因为,每次用户选择摘东西,我都需要进行连接,请求,查询等。


你们有什么想法吗,最好的方法是什么? 我在这里的路线正确吗?

谢谢。

ASP.NET基于Manager模式 (称为Profile)提供了这种内置的解决方案存储。 MSDN链接从何处开始调查详细信息: http : //msdn.microsoft.com/zh-cn/library/2y3fs9xs%28v=vs.100%29.aspx

可以通过System.Web.HttpContext.Current.Profile几乎在任何地方(当然,也可以在n层中)访问概要文件。 基本对象是ProfileBase类型。 但是你可以注入你的。 并且还有ProfileProvider (在APS.NET中某些默认值是SqlProfileProvider ),或者您也可以注入。 稍后,您可以根据需要将提供程序更改为目标XML,DB ...(例如,在更合适的Web场中是DB),并且还可以使用诸如Cache之类的性能提示。

来自web.config的此代码段显示了如何使Profile发挥作用。

<profile defaultProvider="ProjectProfile" inherits="MyLib.ProjectProfile, MyLib">
    <providers >
         <clear/>
        <add name="ProjectProfile" type="MyLib.ProjectProfileProvider, MyLib" />
    </providers>
</profile>

您甚至可以将其用于未登录的用户! 这可以通过使用另一个web.config设置来完成:

<anonymousIdentification enabled="true" />

它将支持任何用户的唯一cookie

一个简单的购物车解决方案是仅在用户的浏览器中使用cookie,因为存储的数据对用户或网站并不重要,这里是一个示例: http : //www.codeproject.com/Articles/93639/Simple -购物-车-篮用户-控制-使用-ASP

您可以阅读有关cookie的更多信息:

http://msdn.microsoft.com/en-us/library/ms178194(v=vs.100).aspx

但是,通过使用cookie,只有在用户使用相同的浏览器访问网站时,您才可以访问数据,如果对您而言,您可以使用数据库解决方案,相信我,数据库比读写xml文件快得多,您还可以在用户订购完成后清除数据库

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM