sql >> データベース >  >> RDS >> Mysql

Webサイトのすべてのユーザーから強制的にログアウトするにはどうすればよいですか?

    Joeが示唆しているように、特定のDateTimeより前に存在するCookieを無効にするHttpModuleを作成できます。これを設定ファイルに入れると、必要に応じて追加/削除できます。たとえば、

    Web.config:

    <appSettings>
      <add key="forcedLogout" value="30-Mar-2011 5:00 pm" />
    </appSettings>
    
    <httpModules>
      <add name="LogoutModule" type="MyAssembly.Security.LogoutModule, MyAssembly"/>
    </httpModules>
    

    MyAssembly.dllのHttpModule:

    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. 特定の役割のすべてのオブジェクト特権を取得する

    2. MySQLクロスサーバー選択クエリ

    3. テーブルに主キーがありません

    4. SQL Serverは大文字と小文字を区別しますか?