Hallo Forum,
für ein Projekt benutze ich einen eigenen Membership Provider für eine DB2 Datenbank. Ich habe mir schon die beiden Provider für MS SQL und MySql angesehen aber kein Antwort auf meine Frage finden können. Mir ist bekannt, dass ich in der ValidateUser-Methode via SQL Befehl den LogOn Status setzen kann. Somit kann ich bestimmen, dass der User angemeldet ist. Aber wo ist das Pendant dazu? Wie oder mit welcher Methode wird der Status wieder zurückgesetzt?
mfg Tequila
Hallo,
der MembershipProvider ist nicht fürs Ausloggen zuständig.
Das sollte über
FormsAuthentication.SignOut();
HttpContext.Current.Session.Abandon();
laufen.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Hm. Dann habe ich zwei Fragen.
Wie ändern die genannten Methoden denn meinen Status in der Datenbank? Das können sie meiner Meinung nach nicht. Der User wäre quasi immer angemeldet.
Wie würdest du dann Authentifizierung für einen WCF Service umsetzten? Da das Membership Model dann ja nicht durchgängig nutzbar ist.
Hallo tequila slammer
Du könntest bspw. folgende Events benutzen :
Wie ändern die genannten Methoden denn meinen Status in der Datenbank? Das können sie meiner Meinung nach nicht. Der User wäre quasi immer angemeldet.
Warum über die Datenbank ?
Global.asax :
void Session_Start(object sender, EventArgs e)
{
// Code that runs when a new session is started
Application.Lock();
Application["CurrentOnlineUsers"] = (int)Application["CurrentOnlineUsers"] + 1;
Application.UnLock();
}
void Session_End(object sender, EventArgs e)
{
// Code that runs when a session ends.
// Note: The Session_End event is raised only when the sessionstate mode
// is set to InProc in the Web.config file. If session mode is set to StateServer
// or SQLServer, the event is not raised.
Application.Lock();
Application["CurrentOnlineUsers"] = (int)Application["CurrentOnlineUsers"] - 1;
Application.UnLock();
Session.RemoveAll();
}
Wie würdest du dann Authentifizierung für einen WCF Service umsetzten? Da das Membership Model dann ja nicht durchgängig nutzbar ist.
Prüfen ob ein User eingeloggt ist bevor man die Methode aufruft ?! Verstehe ich die Frage falsch ? 😃
Beste Grüsse
Diräkt
Ich habe jetzt angefangen es mit einem Helper zu lösen, der mir dann den Status wieder verändert.