如何解析PropertyName PropertyValue数据?

发布于 2024-07-29 07:30:03 字数 989 浏览 5 评论 0原文

我正在使用的两个 Web 应用程序正在使用 ASP.NET 成员身份,并且每个应用程序都有用户信息区域,这些区域在数据库中使用此属性名称/值存储方法。

这是一个示例:

PropertyNameValues

publicEmail:S:0:19:yahooIM:S:19:0:timezone:S:19:2:commonName:S:21:4:birthdate:S:25:81:signatureFormatted:S:106:0:gender:S:106:1:fontsize:S:107:1:signature:S:108:0:dateFormat:S:108:15:enableEmoticons:S:123:4:webLog:S:127:0:enablePostPreviewPopup:S:127:5:location:S:132:12:bio:S:144:0:webAddress:S:144:0:interests:S:144:0:icqIM:S:144:0:aolIM:S:144:0:language:S:144:5:occupation:S:149:0:msnIM:S:149:0:

PropertyValues

[email protected]<?xml version="1.0" encoding="utf-16"?>
<dateTime>0001-01-01T00:00:00</dateTime>20ddd, MMM d yyyyTrueFalseTest Testing-US

我可以看到它的工作原理,名称值显示属性值字符串中开始抓取的长度以及何时结束 - 但是是否有现有的函数可以将它们拆分为数组或某物?

谢谢!

Two web applications I'm working with are using the ASP.NET membership and each have areas for user information which use this Property name/value storage method in the database.

Here is an example:

PropertyNameValues

publicEmail:S:0:19:yahooIM:S:19:0:timezone:S:19:2:commonName:S:21:4:birthdate:S:25:81:signatureFormatted:S:106:0:gender:S:106:1:fontsize:S:107:1:signature:S:108:0:dateFormat:S:108:15:enableEmoticons:S:123:4:webLog:S:127:0:enablePostPreviewPopup:S:127:5:location:S:132:12:bio:S:144:0:webAddress:S:144:0:interests:S:144:0:icqIM:S:144:0:aolIM:S:144:0:language:S:144:5:occupation:S:149:0:msnIM:S:149:0:

PropertyValues

[email protected]<?xml version="1.0" encoding="utf-16"?>
<dateTime>0001-01-01T00:00:00</dateTime>20ddd, MMM d yyyyTrueFalseTest Testing-US

I can see the jist of how it works, name values show at what length in the property value string to begin grabbing and when to end - but is there an existing function to split these apart into an array or something?

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

杀お生予夺 2024-08-05 07:30:03

其工作原理取决于您使用的是“网站”还是“Web 应用程序”项目类型。 如果您使用的是常规 asp.net 网站项目,您将拥有一个动态生成的 Profile 对象,您可以使用它来获取用户属性。

如果您的应用程序是 MVC 或 Web 应用程序项目,则您必须创建自己的配置文件对象。 我建议您使用Web 配置文件生成器。 该工具创建获取配置文件数据所需的 ProfileCommon 对象。

总的来说,我个人通过反复接触发现,asp.net 中提供的 Profile 提供程序系统对于存储实际用户信息(您使用它的用途)来说非常糟糕。 配置文件提供程序机制非常适合诸如用户首选项(通常称为个性化的东西)之类的内容,例如“始终显示详细信息”或“我更喜欢绿色背景”。 原因是配置文件系统仅使配置文件数据能够在一个用户的请求内轻松访问。 如果您的管理工具需要读取多个用户的个人资料,您会发现性能会迅速下降,并且获取个人资料数据实际上相当困难。

出于这些原因,我建议您考虑不要将配置文件系统用于您存储在那里的数据类型。 如果您滚动自己的表和对象来存储和获取这种特定类型的信息,效果会好得多。 但是,如果您不需要一次访问多个用户的数据,那么内置的配置文件就可以了。

How this works depends on if you are using a "web site" or a "web application" project type. If you are using a regular asp.net web site project, you will have a dynamically generated Profile object you can use to fetch user properties from.

If your application is MVC or a Web Application Project though, you will have to make your own profile object. I recommend you grab the web profile builder. This tool creates the ProfileCommon object that is needed to get at the profile data.

In general, I personally have found through repeated exposure that the Profile provider system supplied in asp.net is quite dreadful for storing actual user information (the kind of stuff you are using it for). The profile provider mechanism is great for stuff like user preferences (stuff usually called personalization) such as "always show details" or "I prefer the green background". The reason is that the profile system only makes the profile data easily accessable within the request of the one user. If you have admin tools that need to read from multiple user's profiles, you will find that performance will quickly degenerate, and getting at the profile data is actually quite difficult.

For these reasons, I recommend that you consider not using the profile system for the kind of data you are storing there. You will be a lot better off rolling your own tables and objects to store and fetch this particular kind of info. But if you never need to access the data for more than one user at a time, the built-in profile stuff is alright.

墟烟 2024-08-05 07:30:03

看来您指的是 ASP.NET 配置文件系统

在 aspx 页面的代码隐藏中,只需使用 Profile.publicEmailProfile.yahooIM 等。有一个自动生成的类可以为您解析这些内容。 有关更多详细信息,请参阅链接的文章。

It looks like you're referring to the ASP.NET Profile system.

Within the code-behind of an aspx page, just use Profile.publicEmail, Profile.yahooIM, etc. There's an automatically generated class that parses that out for you. See the linked article for more details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文