2009-08-02 6 views
1

Zwei Webanwendungen, mit denen ich arbeite, verwenden die ASP.NET-Mitgliedschaft und verfügen jeweils über Bereiche für Benutzerinformationen, die diese Eigenschaftsname/Wertspeichermethode in der Datenbank verwenden. HierWie parse PropertyName PropertyValue Daten?

ein Beispiel:

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: 

Property

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

kann ich die jist sehen, wie es funktioniert, Name Werte zeigen an, welche Länge in der Eigenschaft Wert Zeichenfolge anfangen zu greifen und wann zu beenden - aber gibt es eine existierende Funktion, um diese in ein Array oder etwas aufzuteilen?

Danke!

Antwort

1

Es sieht so aus, als ob Sie sich auf die ASP.NET Profile system beziehen.

Innerhalb der Code-Behind einer aspx-Seite, verwenden Sie einfach Profile.publicEmail, Profile.yahooIM, etc. Es gibt eine automatisch generierte Klasse, die das für Sie analysiert. Weitere Informationen finden Sie im verlinkten Artikel.

2

Wie das funktioniert, hängt davon ab, ob Sie den Projekttyp "Web Site" oder "Web Application" verwenden. Wenn Sie ein normales asp.net-Website-Projekt verwenden, verfügen Sie über ein dynamisch generiertes Profil-Objekt, mit dem Sie Benutzereigenschaften abrufen können.

Wenn Ihre Anwendung jedoch MVC oder ein Webanwendungsprojekt ist, müssen Sie ein eigenes Profilobjekt erstellen. Ich empfehle Ihnen, die web profile builder zu greifen. Dieses Tool erstellt das ProfileCommon-Objekt, das zum Abrufen der Profildaten benötigt wird.

In der Regel habe ich durch wiederholte Exposition persönlich festgestellt, dass das Profil Provider-System in asp.net zur Verfügung gestellt recht schrecklich für die Speicherung der tatsächlichen Benutzerinformationen ist (die Art von Sachen, die Sie es verwenden). Der Profilanbieter-Mechanismus eignet sich hervorragend für Dinge wie Benutzereinstellungen (normalerweise Personalisierung genannt) wie "Details immer anzeigen" oder "Ich bevorzuge den grünen Hintergrund". Der Grund dafür ist, dass das Profilsystem die Profildaten nur innerhalb der Anfrage des einen Benutzers leicht zugänglich macht. Wenn Sie über Admin-Tools verfügen, die aus mehreren Benutzerprofilen lesen müssen, werden Sie feststellen, dass die Leistung schnell degeneriert und der Zugriff auf die Profildaten ziemlich schwierig ist.

Aus diesen Gründen empfehle ich Ihnen, das Profilsystem nicht für die Art von Daten zu verwenden, die Sie dort speichern. Sie werden viel besser rollen Ihre eigenen Tabellen und Objekte zu speichern und holen diese besondere Art von Informationen. Wenn Sie jedoch nie für mehrere Benutzer gleichzeitig auf die Daten zugreifen müssen, ist das integrierte Profilmaterial in Ordnung.

Verwandte Themen