sql >> Databasteknik >  >> RDS >> Mysql

Hur kan jag tvinga fram en utloggning av alla användare för en webbplats?

Som Joe föreslår kan du skriva en HttpModule för att ogiltigförklara alla cookies som finns före en given DateTime. Om du lägger detta i konfigurationsfilen kan du lägga till/ta bort det vid behov. Till exempel,

Web.config:

<appSettings>
  <add key="forcedLogout" value="30-Mar-2011 5:00 pm" />
</appSettings>

<httpModules>
  <add name="LogoutModule" type="MyAssembly.Security.LogoutModule, MyAssembly"/>
</httpModules>

HttpModule i MyAssembly.dll:

public class LogoutModule: IHttpModule
{
    #region IHttpModule Members
    void IHttpModule.Dispose() { }
    void IHttpModule.Init(HttpApplication context)
    {
        context.AuthenticateRequest += new EventHandler(context_AuthenticateRequest);
    }
    #endregion


    /// <summary>
    /// Handle the authentication request and force logouts according to web.config
    /// </summary>
    /// <remarks>See "How To Implement IPrincipal" in MSDN</remarks>
    private void context_AuthenticateRequest(object sender, EventArgs e)
    {
        HttpApplication a = (HttpApplication)sender;
        HttpContext context = a.Context;

        // Extract the forms authentication cookie
        string cookieName = FormsAuthentication.FormsCookieName;
        HttpCookie authCookie = context.Request.Cookies[cookieName];
        DateTime? logoutTime = ConfigurationManager.AppSettings["forcedLogout"] as DateTime?;
        if (authCookie != null && logoutTime != null && authCookie.Expires < logoutTime.Value)
        {
            // Delete the auth cookie and let them start over.
            authCookie.Expires = DateTime.Now.AddDays(-1);
            context.Response.Cookies.Add(authCookie);
            context.Response.Redirect(FormsAuthentication.LoginUrl);
            context.Response.End();
        }
    }
}


  1. ZDLRA – RMAN-20035 ogiltig hög RECID

  2. PHP PDO-relaterat:Uppdatera SQL-sats som inte uppdaterar innehållet i databasen

  3. Uppdatera antal kolumn från data i en annan tabell

  4. cx_Oracle ansluter inte när du använder SID istället för tjänstens namn på anslutningssträngen