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

JFF*_*FFF 6 javascript asp.net cookies jquery

我看到了关于在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>    
Run Code Online (Sandbox Code Playgroud)

mpl*_*jan 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);
        }
  });
});
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你实际帮助我. (3认同)

小智 5

document.cookie = "login=" + username_from_DOM_here + "-----" + password_from_DOM_here + "; secure";
Run Code Online (Sandbox Code Playgroud)

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

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