Beispiel für ASP-Code zur Implementierung der Sprungfunktion nach dem Timeout-Popup-Fenster

Y2J
Freigeben: 2017-05-04 11:01:53
Original
1540 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die MVC in Asp.net vor, um die Sprungfunktion nach dem Timeout-Popup-Fenster zu implementieren. Es ist sehr gut und hat einen Referenzwert.

Um Wenn Sie den Anmeldestatus beibehalten, können Sie Cookies verwenden, um dieses Problem zu lösen.

Gehen Sie davon aus, dass die Ablaufzeit 30 Minuten beträgt und die Überprüfung auf dem Server erfolgt. Mit Hilfe des -Filters können Sie dies tun schreibe so

 public class PowerFilter : AuthorizeAttribute
  {
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
      var cookie = HttpContext.Current.Request.Cookies["loginInfo"];
      if(null == cookie)
      {
        filterContext.Result = new RedirectResult("/admin/login/index");
      }
      else
      {
        cookie.Expires = DateTime.Now.AddMinutes(30);
        HttpContext.Current.Response.Cookies.Remove("loginInfo");
        HttpContext.Current.Response.Cookies.Add(cookie);
      }
    }
  }
Nach dem Login kopieren

Aber die Seite springt direkt ohne Aufforderung, was nicht sehr freundlich ist. Es kann so sein

public class PowerFilter : AuthorizeAttribute
  {
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
      var cookie = HttpContext.Current.Request.Cookies["loginInfo"];
      if(null == cookie)
      {
        filterContext.Result = new ContentResult()
        {
          Content = string
          .Format("<script>alert(&#39;登录超时,请重新登录&#39;);location.href=&#39;{0}&#39;</script>","/admin/login/index")
        };
      }
      else
      {
        cookie.Expires = DateTime.Now.AddMinutes(30);
        HttpContext.Current.Response.Cookies.Remove("loginInfo");
        HttpContext.Current.Response.Cookies.Add(cookie);
      }
    }
  }
}
Nach dem Login kopieren

Aber was ist, wenn es eine Ajax-Anfrage ist? ?

public class PowerFilter : AuthorizeAttribute
  {
    public override void OnAuthorization(AuthorizationContext filterContext)
    {
      var cookie = HttpContext.Current.Request.Cookies["loginInfo"];
      if(null == cookie)
      {
        if(!filterContext.HttpContext.Request.IsAjaxRequest())
        {
          filterContext.Result = new ContentResult()
          {
            Content = string
                 .Format("<script>alert(&#39;登录超时,请重新登录&#39;);location.href=&#39;{0}&#39;</script>","/admin/login/index")
          };
        }
        else
        {
          filterContext.Result = new JsonResult()
          {
            Data = new { logoff = true,logurl = "/admin/login/index" },
            ContentType = null,
            ContentEncoding = null,
            JsonRequestBehavior = JsonRequestBehavior.AllowGet
          };
        }
      }
      else
      {
        cookie.Expires = DateTime.Now.AddMinutes(30);
        HttpContext.Current.Response.Cookies.Remove("loginInfo");
        HttpContext.Current.Response.Cookies.Add(cookie);
      }
    }
  }
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonBeispiel für ASP-Code zur Implementierung der Sprungfunktion nach dem Timeout-Popup-Fenster. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
mvc
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!