试图在cookie中保存用户名/密码; JQuery的

时间:2011-12-14 17:32:44

标签: javascript jquery asp.net cookies

我看到了关于在cookie中存储登录信息的示例。

http://eisabainyo.net/weblog/2009/02/20/store-login-information-in-cookie-using-jquery/

尝试过,但似乎无法让它发挥作用。我必须插件,我不知道这里有什么问题。

此页面为Login.aspx,指向AccountMenu.aspx

编辑这是一场演示,测试,无论你是谁打电话。这个网站永远不会上线。我知道这不是这样做的方法。我正在寻求帮助来解决我的问题,而不是人们告诉我这是一个糟糕的设计。

(...)

    <div data-role="content">

    <form action="AccountMenu.aspx" method="post" id="login">

        <label for="email">Email</label>
        <input type="text" id="email" name="email"/>

        <label for="password"><%= GetLabel("password") %></label>
        <input id="password" type="password" name="password" />

        <div data-role="fieldcontain">
        <fieldset data-role="controlgroup">
            <input type="checkbox" name="remember" id="remember" class="custom" checked="true" />
            <label for="remember">Remember me ?</label>
        </fieldset>
        </div>

        <input type="hidden" name="submit" value="submitted" />
        <button type="submit" name="submit" id="submit" data-theme="a"  value="<%= GetLabel("new-login") %>" ></button>
        <button type="button" disabled="disabled" data-theme="a" value="<%= GetLabel("new-account") %>"></button>        

    </div>

 </form>

    <script type="text/javascript">

        if ($('#remember').attr('checked')) 
        {
            var email = $('#email').attr("value");
            var password = $('#password').attr("value");

            // set cookies to expire in 14 days
            $.cookie('email', email, { expires: 14 });
            $.cookie('password', password, { expires: 14 });
            $.cookie('remember', true, { expires: 14 });                
        }
        else
        {
            // reset cookies
            $.cookie('email', null);
            $.cookie('password', null);
            $.cookie('remember', null);
        }

        var remember = $.cookie('remember');
        if (remember == 'true') 
        {
            var email = $.cookie('email');
            var password = $.cookie('password');
            // autofill the fields
            $('#email').attr("value", email);
            $('#password').attr("value", password);
        }

    </script>    

3 个答案:

答案 0 :(得分:14)

当用户填写表单

时,您需要实际调用代码
$(document).ready(function() {

        var remember = $.cookie('remember');
        if (remember == 'true') 
        {
            var email = $.cookie('email');
            var password = $.cookie('password');
            // autofill the fields
            $('#email').val(email);
            $('#password').val(password);
        }


    $("#login").submit(function() {
        if ($('#remember').is(':checked')) {
            var email = $('#email').val();
            var password = $('#password').val();

            // set cookies to expire in 14 days
            $.cookie('email', email, { expires: 14 });
            $.cookie('password', password, { expires: 14 });
            $.cookie('remember', true, { expires: 14 });                
        }
        else
        {
            // reset cookies
            $.cookie('email', null);
            $.cookie('password', null);
            $.cookie('remember', null);
        }
  });
});

答案 1 :(得分:4)

document.cookie = "login=" + username_from_DOM_here + "-----" + password_from_DOM_here + "; secure";

不要在cookie声明中使用路径并确保页面是HTTPS,那么你应该没问题。安全cookie只能在HTTPS页面上传输,忽略路径限定符可确保cookie不可用于站点的其他部分。也不要使用expires限定符,因为cookie将在浏览器会话结束时到期。

还存在一些安全问题,因为Cookie仍然在文本文件中包含未散列的凭据。即使该cookie永远不会在HTTPS之外传输,它仍然可以被浏览器外的恶意软件访问。

答案 2 :(得分:0)

**At first you need jquery.cookie.js file**

<script type="text/javascript">

$(document).ready(function() {

    var remember = $.cookie('remember');
    if (remember == 'true') 
    {
        var username = $.cookie('username');
        var password = $.cookie('password');
        // autofill the fields
        $('#username').val(username);
        $('#password').val(password);
    $('#login-check').attr('checked',true);//#login-check checkbox id..
    }


$("#UserLoginForm").submit(function() {
    if ($('#login-check').is(':checked')) {
        var username = $('#username').val();
        var password = $('#password').val();

        // set cookies to expire in 14 days
        $.cookie('username', username, { expires: 14 });
        $.cookie('password', password, { expires: 14 });
        $.cookie('remember', true, { expires: 14 });                
    }
    else
    {
        // reset cookies
        $.cookie('username', null);
        $.cookie('password', null);
        $.cookie('remember', null);
    }
  });
});

</script>