Wie aspnet_Users.UserId für einen anonymen Benutzer in ASP.NET-Mitgliedschaft zu bekommen?
-
06-07-2019 - |
Frage
Ich versuche, das aspnet Mitgliedschaft UserId
Feld von einem anonymen Benutzer zu erhalten.
Ich habe aktiviert anonyme Identifizierung in web.config:
<anonymousIdentification enabled="true" />
Ich habe erstellt auch ein Profil:
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
connectionStringName="ApplicationServices"
applicationName="/" />
</providers>
<properties>
<add name="Email" type="System.String" allowAnonymous="true"/>
<add name="SomethingElse" type="System.Int32" allowAnonymous="true"/>
</properties>
</profile>
Ich sehe Daten in meiner aspnetdb\aspnet_Users
Tabelle für anonyme Benutzer, die Profilinformationen Set gehabt hat.
Userid PropertyNames PropertyValuesString
36139818-4245-45dd-99cb-2a721d43f9c5 Email:S:0:17: me@example.com
Ich muß nur finden, wie den ‚Benutzer-ID‘ Wert erhalten.
Es ist nicht möglich zu verwenden:
Membership.Provider.GetUser(Request.AnonymousID, false);
Die Request.AnonymousID ist eine andere GUID und nicht gleich 36139818-4245-45dd-99cb-2a721d43f9c5.
Gibt es eine Möglichkeit, diese User-ID zu bekommen. Ich will es mit unvollständiger Aktivität für einen anonymen Benutzer zugeordnet werden soll. den Primärschlüssel aspnet_Users
zu verwenden ist vorzuziehen, die meine eigene GUID zu erstellen (was ich im Profil tun und speichern können).
Dies ist im Grunde ein Betrogene dieser Frage aber die Frage war nie wirklich beantwortet.
Lösung
Sie können die Benutzer-ID für einen anonymen Benutzer dieser:
string userId = Request.AnonymousID
Andere Tipps
OK, so MemberShip.GetUser()
gibt ein Objekt vom Typ MembershipUser
.
mehr in die Tabellen in der aspnetdb
Datenbank Delving es scheint, dass, obwohl eine Reihe in aspnet_Users
für alle Benutzer erstellt wird (auch anonyme) -. Eine Zeile nicht in aspnet_Membership erstellt, es sei denn sollte der Benutzer tatsächlich authentifiziert / registriert
Aber ein anonymes Benutzerprofil (aspnet_Users Tabelle) ein GUID anstelle einem UserName
gegeben wird.
Ich habe noch keinen Weg gefunden, die UserId
Eigenschaft eines anonymen Benutzer zugreifen -. Aber ich habe erkannt, dass wirklich der Benutzername ist umso nützlicher Schlüssel sowieso
Das UserId
Feld auch in aspnet_Users
Tabelle vorhanden ist, so dass, wenn Sie wirklich das einzigartige Benutzer-ID-Feld benötigen, dann können Sie es mit einer ‚Handbuch‘ SQL-Suche erhalten.