Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 系统支持自动将用户登录到您的站点_Jquery_Asp.net_Asp.net Mvc_Security - Fatal编程技术网

Jquery 系统支持自动将用户登录到您的站点

Jquery 系统支持自动将用户登录到您的站点,jquery,asp.net,asp.net-mvc,security,Jquery,Asp.net,Asp.net Mvc,Security,使用ASP.NETMVC、实体框架、jQuery。我想让用户在单击“记住我”时能够自动登录,我提出的方法是: 当用户登录时 散列PW并存储在DB中 如果当用户登录时,他们勾选“记住我” 创建一个cookie,使用加密的UserID,然后使用某种分隔符和散列的PW 然后下次用户回来时,我可以检查他们的cookie,如果它存在,我就用AJAX让他们登录。如果用户注销,我当然会删除他们的cookie 这是实现自动登录功能的正确方法吗 我想我的散列函数和用户ID加密函数将是服务器端的,为了创建coo

使用ASP.NETMVC、实体框架、jQuery。我想让用户在单击“记住我”时能够自动登录,我提出的方法是:

  • 当用户登录时
    • 散列PW并存储在DB中 如果当用户登录时,他们勾选“记住我”
    • 创建一个cookie,使用加密的UserID,然后使用某种分隔符和散列的PW
  • 然后下次用户回来时,我可以检查他们的cookie,如果它存在,我就用AJAX让他们登录。如果用户注销,我当然会删除他们的cookie

    这是实现自动登录功能的正确方法吗

    我想我的散列函数和用户ID加密函数将是服务器端的,为了创建cookie,我将通过AJAX调用该函数,然后创建它

    这是最佳实践吗

    谢谢你

    你的方法(有一个cookie,其值表示用户已登录)相当标准

    不标准的是存储散列用户名和密码(特别是密码)-不确定为什么需要,因为cookie是以明文传输的(用于http连接),您为站点和用户之间的任何人提供了查看密码散列的能力,并有机会破坏它以获取密码

    创建一个存储在cookie中的唯一“loggedIn”标记(比如GUID)而不是密码散列,这是用来确定用户是否登录的比较。您的方法(使用一个cookie值指示用户登录)相当标准

    不标准的是存储散列用户名和密码(特别是密码)-不确定为什么需要,因为cookie是以明文传输的(用于http连接),您为站点和用户之间的任何人提供了查看密码散列的能力,并有机会破坏它以获取密码


    创建一个存储在cookie中的唯一“loggedIn”令牌(比如GUID),而不是密码哈希,这是用来确定用户是否登录的比较结果。

    许多可能的方法之一是:

    注意:我用纯PHP编写了它。但所有语言的逻辑都是一样的

  • 设置$redirect=FALSE
  • 是否设置了$\u GET[“注销”]?如果是,则转到3,否则转到5
  • 如果已设置,请删除、验证、删除cookies、销毁会话
  • 显示登录表单并退出
  • 这是邮寄申请吗?如果是,则转到6,否则转到18
  • 设置$redirect=TRUE
  • 是否提供用户名和密码?如果是,则转到8,否则转到3
  • 从数据库中获取$username、$pass散列和$rem me散列
  • $username和$password与数据库中的相同吗?如果是,则转到10,否则转到3
  • 设置cookie[“username”]=已消毒($\u POST[“username”])
  • 发出包含$auth=sha1(用户名、密码、时间、6个随机字母)的cookie[“auth”]
  • 设置会话[“auth”]=sha1($auth)。取消设置$auth
  • 是否选择了“记住我”选项?如果是,则转到13,否则转到15
  • 设置$rem=sha1($user_string.$time.$password.$username.$random)
  • 设置cookie[“rem”]=$rem
  • 设置$rem=0
  • 如果$rem!=$rem-me-hash_DB,在DB中插入$rem。去23号
  • $rem cookie是否已设置?是的,去19号,否则去20号
  • $rem cookie==$rem哈希(以db为单位)?如果是,则转到22,否则转到3
  • 是否设置了$username cookie&&$auth cookie&&auth会话?如果是,则转到21,否则转到3
  • sha1($auth cookie)=$\u会话[“auth”]是否有效?如果是,则转到22,否则转到3
  • $redirect==TRUE吗?如果是,使用301,GET方法重定向回同一页面。否则请转到23
  • 这是我的超级秘密星际迷航壁纸(内容)
  • 这是一个漫长的过程,但(希望)涵盖了所有场景

    将所有算法保存在
    password.php
    中,并在要保护的每个文件的顶部包含此文件。只有通过所有可能的场景,才能控制秘密内容。每次出现错误时,脚本都会显示登录表单&退出

    此外,它还实现了Post-Redirect-Get()方法,即获取Post请求,对其进行处理,并使用Get方法将用户重定向回,以防止在按下“返回”和“刷新”按钮时出现双重表单提交


    上述描述中可能存在拼写错误或混合概念。让我知道任何改进。

    许多可能的方法之一是:

    注意:我用纯PHP编写了它。但所有语言的逻辑都是一样的

  • 设置$redirect=FALSE
  • 是否设置了$\u GET[“注销”]?如果是,则转到3,否则转到5
  • 如果已设置,请删除、验证、删除cookies、销毁会话
  • 显示登录表单并退出
  • 这是邮寄申请吗?如果是,则转到6,否则转到18
  • 设置$redirect=TRUE
  • 是否提供用户名和密码?如果是,则转到8,否则转到3
  • 从数据库中获取$username、$pass散列和$rem me散列
  • $username和$password与数据库中的相同吗?如果是,则转到10,否则转到3
  • 设置cookie[“username”]=已消毒($\u POST[“username”])
  • 发出包含$auth=sha1(用户名、密码、时间、6个随机字母)的cookie[“auth”]
  • 设置会话[“auth”]=sha1($auth)。取消设置$auth
  • 是否选择了“记住我”选项?如果是,则转到13,否则转到15
  • 设置$rem=sha1($user_string.$time.$password.$username.$random)
  • 设置cookie[“rem”]=$rem
  • 设置$rem=0
  • 如果$rem!=$rem-me-hash_DB,在DB中插入$rem。去23号
  • $rem cookie是否已设置?是的,去19号,否则去20号
  • $rem cookie==$rem哈希(以db为单位)?如果是,则转到22,否则转到3
  • 是否设置了$username cookie&&$auth cookie&&auth会话?如果是,则转到21,否则转到3
  • sha1($auth cookie)=$\u会话[“auth”]是否有效?如果是,则转到22,否则转到3
  • 是美元吗