implementieren Hallo, ich habe geplant, eine Funktion wie Sitzung in Windows-Anwendung zu implementieren, aber nicht für den Zweck, um Informationen zunächst zu halten. Der Hauptzweck ist es, sich abzumelden oder zumindest aufgefordert Login/Passwort nach Ablauf der Sitzung.Ich kann nicht finden Informationen über Timeout-Funktion auf es online.Ich wäre sehr dankbar, wenn jemand mich auf einige Ressourcen zeigen oder teilen Sie seine Erfahrung mit uns.Vielen Dank für das Lesen dieser PS: ich ' m mit C# .NET 2.0 mit Visual Studio 2005 Merci.wie Winform Sitzung wie Sitzung Timeout insbesondere
Antwort
Ihre einfachste Lösung wäre, eine Timer
-Eigenschaft zu verwenden und die Eigenschaft Duration
auf die Anzahl der Millisekunden einzustellen, die Sie in Ihrem Timeout möchten. Wenn Sie auf eine Aktivität stoßen, können Sie den Timer einfach zurücksetzen, indem Sie Stop
anrufen und dann sofort Start
aufrufen. Legen Sie den gewünschten Code in das Timer
Tick
Ereignis (vorausgesetzt, dies ist ein System.Windows.Forms.Timer
) und Sie werden alles bereit sein.
Ich habe eine Implementierung über diese Session-Sache entwickelt, die ich gerne teilen möchte, besonders für diejenigen, die das gleiche Problem haben. Es ist nicht perfekt und ich mag kluge Leute wie Sie, die mir eine Anleitung geben akzeptabel genug. zunächst einmal habe ich eine Klasse Usersession
using System.Timers;
public class usersession
{
private static bool sessionalive;
private static Timer usertimer;
public static bool SessionAlive
{
get { return sessionalive; }
set { sessionalive = value; }
}
public static void BeginTimer()
{
try
{
SessionAlive = true;
//usertimer.Start();
usertimer = new Timer(int.Parse(ConfigurationManager.AppSettings["sessiontime"].ToString()));
usertimer.Enabled = true;
usertimer.AutoReset = false;
usertimer.Elapsed += new ElapsedEventHandler(DisposeSession);
}
catch (Exception ex)
{
return;
}
}
private static void DisposeSession(object source, ElapsedEventArgs e)
{
try
{
SessionAlive = false;
}
catch (System.Exception ex)
{
return;
}
}
public static void ResetTimer()
{
try
{
SessionAlive = true;
usertimer.Stop();
usertimer.Start();
}
catch (Exception ex)
{
return;
}
}
}
es ist eine MDI-Anwendung so im Inneren der Hauptform i Funktion startsession
public frMain()
{
InitializeComponent();
StartSession();
//SessionChecker();
}
public void StartSession()
{
try
{
usersession.BeginTimer();
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
so jederzeit der Benutzer klicken Sie auf etwas haben, überprüfen wir die Usersession. SessioAlive Eigenschaft wie so in diesem Schaltergehäuse snippet
case "transfer":
if (!usersession.SessionAlive)
{
new LoginForm().ShowDialog();
}
MessageBox.Show("cash back transfert page");
break;
und innerhalb der Loginform ist Login korrekt nennen wir die usersession.Res (EtTimer)
this.DialogResult = DialogResult.OK;
usersession.ResetTimer();
this.Close();
jetzt wollte ich wirklich die Prüfung im Hintergrund ausgeführt werden soll, die Were ist ich brauche Ihre advice.here ich verwende forms.timer einen kleinen Job zu erstellen, aber da forms.timer hat nicht Autoreset- es tun eine endlose loop.here ist it.it der Innenseite Hauptform
private void SessionChecker()
{
try
{
check = new Timer();
check.Enabled = true;
check.Interval = 1000;
check.Tick += new EventHandler(check_Tick);
}
catch (Exception)
{
throw;
}
}
void check_Tick(object sender, EventArgs e)
{
try
{
if (!usersession.SessionAlive)
{
new LoginForm().ShowDialog();
check.Stop();
}
}
catch (System.Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
so was denken Sie, ich sollte so tun, dass es nicht der Benutzer eine Aktion erforderlich ist, bevor es für Berechtigungsnachweise Aufforderung ist, wenn Sitzung abläuft. danke für das Lesen dieser langen Sachen. :)
- 1. Spring Boot Sitzung Timeout
- 2. JBoss Sitzung Timeout
- 3. Perfino Sitzung Timeout Einstellungen
- 4. Hosting RemoteAPP-Sitzung in Winform
- 5. IIS Session Timeout vs ASP.NET Sitzung Timeout
- 6. ASP.NET-Site Sitzung Timeout Problem
- 7. SAML Spring Security Sitzung Timeout
- 8. Sitzung Timeout in IIS 7
- 9. Sitzung Timeout Warnung in ASP.NET
- 10. ASP.Net Sitzung Timeout funktioniert nicht
- 11. Sitzung Timeout funktioniert nicht in CakePHP 2
- 12. Abmelden/Sitzung Timeout mit Feder Sicherheit fangen
- 13. Weblogic Sitzung Timeout Redirect Login-Seite
- 14. Sitzung Timeout Warnung modal mit reagieren
- 15. Wie zu pflegen Sitzung
- 16. NH-Anfrage pro Sitzung - "Sitzung ist geschlossen!"
- 17. Express-Sitzung nicht Sitzung speichern
- 18. [nodejs] Wie expressjs die abgelaufene Sitzung zerstören?
- 19. Wie Synchronisiere Sitzung mit SAML?
- 20. Wie spotify Sitzung zu erneuern?
- 21. Wie lange dauert meine Sitzung?
- 22. wie Login-Sitzung in scrapy
- 23. Datenkontext und Nhibernate Sitzung
- 24. IIS 5-Sitzung und Asp.Net Sitzung
- 25. Benutzerdefinierte Sitzung Listener mit Hazelcast-Sitzung Replikation
- 26. CodeIgniter Sitzung
- 27. Codeigniter: Sitzung TempData auf Sitzung zerstören entfernt
- 28. httpservletrequest - neue Sitzung erstellen/Sitzung ändern Id
- 29. Sitzung Timeout auf der Serverseite in asp.net C#
- 30. Umleiten Benutzer auf die Anmeldeseite nach SP Sitzung Timeout
Danke für das Zeichnen meiner Aufmerksamkeit auf die Timer-Klasse.Ich protokolliere auch Benutzeraktivität.Alle Aktion ist in einer bestimmten Methode enthalten, so auf Click-Ereignis auf jeder Benutzeroberfläche Komponente (die eine Aktion auf Click-Ereignis tut) log ich die Method Name als Aktivität in der Datenbank.Kann ich das gleiche Modell verwenden, um den Timer zurückzusetzen? Danke für die schnelle Antwort zu schätzen es –
Sicher können Sie. Ich weiß nicht, ob es in Ihrem Fall passt oder nicht (es könnte sein, oder es könnte nicht sein), aber es würde sicherlich funktionieren. Seien Sie beispielsweise sicher, dass Sie diese Funktion nicht verwenden würden, um Nachrichten zu protokollieren, die NICHT von Benutzereingaben gesteuert werden, da dies Ihr Zeitlimit falsch zurücksetzen würde. –
danke Kumpel wirklich wirklich schätzen it.i würde dieses für jetzt implementieren und sehen, wie es zu verbessern und zu Mausereignis und Tastatur event.thanks erweitern –