zoukankan      html  css  js  c++  java
  • 让静态页面显示用户登录状态

    经常需要显示用户的登录状态,这样对用户来说才更加友好。

    那么既然是静态页面了,那这个用户状态怎么显示呢?

    两种方法:一个是iframe嵌入一个动态页面显示用户登录状态,但是这个要多一次页面请求,还涉及到链接的目标问题,不是很好。

     另外一种就是AJAX。也分是否从服务器端读取,如果从服务器端读取,还是需要往返一次页面请求,性能相对较低。下面介绍直接把用户登录状态保存到客户端。这样效率最高。

    正常的用户登录过程就不多介绍了,这个大家可以搜索一下。我主要介绍如何保持登录状态到客户端。

    首先在登录页面写如下代码:

    //存入cookie
                HttpCookie newCookie = new HttpCookie("User");
                newCookie.Expires.AddMinutes(30);//设置时间
                newCookie.Values.Add("uid","001");
                newCookie.Values.Add("username","leo li");
                Response.AppendCookie(newCookie);

    这里是把用户名等信息客户端存cookie

    在html页中的代码如下:

    <html>
    <title>测试</title>
    <mce:script type="text/javascript" language="javascript"><!--
        function GetCookie(sMainName, sSubName) {
            var sCookieName = sMainName + "=";
            var sSubCookieName = (sSubName) ? sSubName + "=" : null;
            var sCookie;
            var sWholeCookie = document.cookie;
    
            var nValueBegin = sWholeCookie.indexOf(sCookieName);
            if (nValueBegin != -1) {
                var nValueEnd = sWholeCookie.indexOf(";", nValueBegin);
                if (nValueEnd == -1)
                    nValueEnd = sWholeCookie.length;
    
                var sValue = sWholeCookie.substring(nValueBegin + sCookieName.length, nValueEnd); //获得Cookie值
    
                if (sSubCookieName)//多值Cookie
                {
                    var nSubValueBegin = sValue.indexOf(sSubCookieName);
                    if (nSubValueBegin != -1) {
                        var nSubValueEnd = sValue.indexOf("&", nSubValueBegin);
                        if (nSubValueEnd == -1)
                            nSubValueEnd = sValue.length;
                        var sSubValue = sValue.substring(nSubValueBegin + sSubCookieName.length, nSubValueEnd); //获得指定的子键值
                        return unescape(sSubValue);
                    }
                }
                if (!sSubCookieName)
                    return unescape(sValue);
            }
            return null;
        }
        function a() {
            if (GetCookie('User', 'name') != null) {
                document.write('用户名:' + GetCookie('User', 'name') + '<a href="/logout.aspx" mce_href="logout.aspx">注销</a>');
            }
            else {
                document.write('<a href="/login.aspx" mce_href="login.aspx">登录</a> <a href="/reg.aspx" mce_href="reg.aspx">注册</a>');
            }
        }
    // --></mce:script>
    <head>
    </head>
    <body onload="a()">
    </body>
    </html>
  • 相关阅读:
    POJ2155 Matrix
    POJ3469 Dual Core CPU
    洛谷P1469找筷子
    CodeForces 97D. Robot in Basement
    UVa11542 Square
    清澄 A1485. Catch The Penguins 抓企鹅
    Bzoj2595: [Wc2008]游览计划
    HDU4085 Peach Blossom Spring
    CodeForces 333E. Summer Earnings
    洛谷P3389 【模板】高斯消元法
  • 原文地址:https://www.cnblogs.com/sand-tiny/p/3844550.html
Copyright © 2011-2022 走看看