2

Ich verwende VisualWebDeveloperExpress2008 mit Access als Mitgliedschaftsanbieter.Verwenden Sie derzeit angemeldeten Benutzer in Abfrage

Ich habe einige Fälle, wo ich möchte, dass Benutzer ihre eigenen Daten bearbeiten. Dies würde eine Abfrage beinhalten, bei der die Benutzer-ID der Benutzer-ID des Benutzers entsprechen sollte, der die Site verwendet.

Ich erwarte WHERE UserId =?, Aber ich habe nicht herausgefunden, wohin "?".

Die IDE gibt mehrere Möglichkeiten, aber ich bin unsicher, welche zu wählen. Dies funktioniert nicht, obwohl es vielversprechend aussieht:

<SelectParameters> 
    <asp:ProfileParameter Name="UserID" PropertyName="UserId" Type="Int32" /> 
</SelectParameters> 

Was ist am besten für den Select-Parameter zu verwenden?

Antwort

1

Try

<SelectParameters> 
    <asp:SessionParameter Name="UserName" SessionField="CurrentUser" Type="String" /> 
</SelectParameters> 

Auf der Page_Load folgendes einfügen ...

Session["CurrentUser"] = User.Identity.Name; 

Dies sollte für Sie mit arbeiten.

+1

besser, dass in den Session-Start-Event-Handler setzen – SillyMonkey

+0

@SillyMonkey, sehr guter Punkt. +1 – jinsungy

+0

Das funktioniert für mich. Jetzt muss ich herausfinden, wie ich dies in den "Session Start Event Handler" schreiben kann. – Degan

1

User.Identity.Name sollte Ihnen den Benutzernamen des angemeldeten Benutzers bereitstellen.

Jetzt, um die UserID zu erhalten, müssen Sie es in der Datenbank mit dem Benutzernamen überprüfen. Oder Sie können es so einrichten, dass die select-Anweisung stattdessen den Benutzernamen verwendet.

+0

OK, wenn ich den Benutzernamen habe, wäre das zweitbeste, um die UserID direkt zu bekommen, wie ich es mitmachen kann ... Ich nehme an, dass Sie meinen, " " Dies führt zum Fehler: DataBinding: 'ProfileCommon' enthält keine Eigenschaft mit dem Namen 'User'. Vielleicht meinst du etwas anderes? – Degan