2016-12-21 5 views
0

In Bezug auf eine Uhr in/out-Site. Wenn sich Benutzer A anmeldet, werden seine Ein- und Auscheckvorgänge angezeigt. dann meldet sich Benutzer B an. Wenn A die Seite aktualisiert, erhält er B's Ein-/Auscheckvorgänge.
Ich mache das wahrscheinlich falsch, weil Iam den Benutzernamen in einer öffentlichen Variablen speichert, wenn der Benutzer sich immer auf der Serverseite anmeldet, C#, auch für viele andere Berechtigungen auf der Website, durch verschiedene Seiten.ASP.net mehrere Benutzer angemeldet

if (publiclasses.isValid == true) 
    { 
     publiclasses.unilogin = UserNametextbox.Text.ToString(); 
     publiclasses.Checkifmissinglogout(); 
     Response.Redirect("checkin.aspx"); 
    } 

Wie speichere ich den Benutzer in einer anderen Art und Weise, hält es immer „einzigartig“ und nicht nur überschreibt die alte gespeichert?

+0

Können Sie mehr Code, Ihren Login und Ihre Daten abrufen. Das ist nicht genug Code, um zu sehen, was schief läuft. Wo speichern Sie Ihre Daten? (In der Sitzung, localstorage in der Datenbank?) –

+0

Versuchen Sie, Cookie oder Sitzung für mehrere Benutzer zu verwenden. Bessere Verwendung der Sitzung, die Benutzer leicht behandeln wird. Ich kann in Ihrem Code nichts dergleichen sehen. –

Antwort

2

Die Verwendung einer öffentlichen Variablen wird für alle Benutzersitzungen freigegeben, und es treten Probleme mit dem gemeinsamen Zugriff auf, alles davon ausgehend, dass es statisch ist.

Um es zu trennen, müssen Sie Sitzungen verwenden.

ex:

Session["unilogin"] = UserNametextbox.Text.ToString(); 

Sie müssen sicherstellen, dass Sie die Session-Variable in jedem Stück Code verwenden Sie die aktuelle öffentliche Variable Referenz

+0

hab es, danke! –

0

Sie brauchen eine Art zu implementieren, wenn Identität für Ihre Benutzer. Es gibt viele Möglichkeiten, dies zu tun, aber es hängt von der genauen ASP.NET-Variante, die für Sie am besten sein wird. Die meisten Webanwendungen verwenden hierfür cookies.

Wenn Benutzer A sich anmeldet, erhalten sie einen Cookie, der besagt, dass sie A sind. Jede weitere Anfrage, die sie machen, wird diesen Cookie enthalten und Sie können herausfinden, welcher Benutzer sie ist.

in seinem einfachsten ist dies sehr einfach:

// In sign in POST back 
Response.Cookies.Append("user", username); 

// In further pages: 
string username = Request.Cookies["user"]; 

Dies wird jedoch macht es einfach sehr für B A zu sein, so zu tun - es ist nicht sicher. Die integrierten .NET-Methoden erstellen ein verschlüsseltes Cookie, das wesentlich sicherer ist.

Verwandte Themen