Membership UserId auslesen und an GridView / DetailView als Parameter übergeben

Hallo,

wenn man ASP.NET 2.0 nutzt und die dazugehörige Userverwaltung, kann man für seine eigene Tabellen mal die UserId gebrauchen. sie ist im SQL Server 2005 vom DatenTyp uniqueidentifier.

Bekommt tut man diese über folgende CodeZeilen:

// userdaten holen
MembershipUser myObject = Membership.GetUser ( );
 
// userid extrahieren (ist aber vom Typ System.Guid)
string tmpUserID = myObject.ProviderUserKey.ToString ( );

Um diese nun als zusätzlichen Parameter in einem Grid- / DetailsView zu übergeben. muss man nun folgende Ereignisse bearbeiten:

GridView (beim update):

protected void gvNews_RowUpdating ( object sender, GridViewUpdateEventArgs e ) {
        // userdaten holen
        MembershipUser myObject = Membership.GetUser ( );
 
        // userid extrahieren (ist aber vom Typ System.Guid)
        string tmpUserID = myObject.ProviderUserKey.ToString ( );
 
        // als parameter hinzufügen
        e.NewValues.Add ( "username", tmpUserID );
    }

DetailsView (insert)

protected void dvAddNews_ItemInserting ( object sender, DetailsViewInsertEventArgs e ) {
 
        // userdaten holen
        MembershipUser myObject = Membership.GetUser ( );
 
        // userid extrahieren (ist aber vom Typ System.Guid)
        string tmpUserID = myObject.ProviderUserKey.ToString ( );
 
        // als parameter hinzufügen
        e.Values.Add ( "username", tmpUserID );
    }

Wenn es noch einfacher geht, bitte melden 🙂

Related Posts:

2 thoughts on “Membership UserId auslesen und an GridView / DetailView als Parameter übergeben”

  1. Ich hätte (VB!)

    Dim TmpUserId As Guid = CType(MyObject.ProviderUserKey, Guid)

    …weil der ProviderUserKey eigentlich eine Guid ist und man auch in eigenen Tabellen eher einen uniqueidentifier haben sollte…

    MfG,
    Hendrik

  2. Hallo Hendrik,

    vielen Dank für Deinen Kommentar. Natürlich hast Du recht, es geht anstelle (C#) von:

    // userid extrahieren (ist aber vom Typ System.Guid)
    string tmpUserID = myObject.ProviderUserKey.ToString ();

    auch so:

    // userid extrahieren (ist aber vom Typ System.Guid)
    System.Guid tmpUserID = myObject.ProviderUserKey;

    Wie Du siehst, habe ich es auch in den Kommentar geschrieben. Wie man es am Ende braucht, kann jeder selbst entscheiden.

    Gruss Christian

Comments are closed.