代码之家  ›  专栏  ›  技术社区  ›  Joel

通过另一页发布表单数据

  •  -1
  • Joel  · 技术社区  · 7 年前

    首先,在用cors和x-header注释将其标记为副本之前,让我先说……此问题仅适用于本地环境。

    我写了一个以.NET为后端的网站,它使用cookie和会话字符串来维护客户端和网站之间的身份验证。但是,我们的一个客户希望为所有用户一起禁用身份验证。这就是问题出现的地方,我们的系统依赖于这样一个事实:用户名和认证数据在我们的大多数数据请求中都是一起发送的。因此,客户同意使用静态编程的用户名和密码的静态页面(这样他们就不必每次都登录,只需在桌面上打开chrome/firefox快捷方式)。此静态页面将重定向此静态信息并将其传递给“real”登录页面,然后登录用户。

    插图:

    我在这里有什么选择?

    以下是成功登录日志中REQ头的屏幕截图。

    谢谢。

    我写了一个以.NET为后端的网站,它使用cookie和会话字符串来维护客户端和网站之间的身份验证。但是,我们的一个客户希望为所有用户一起禁用身份验证。这就是问题出现的地方,我们的系统依赖于这样一个事实:用户名和认证数据在我们的大多数数据请求中都是一起发送的。因此,客户同意使用静态编程的用户名和密码的静态页面(这样他们就不必每次都登录,只需在桌面上打开chrome/firefox快捷方式)。此静态页面将重定向此静态信息并将其传递给“real”登录页面并登录用户。

    插图:

    enter image description here

    我在这里有什么选择?

    这是成功登录日志中的REQ头的屏幕截图。

    enter image description here

    谢谢。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Elias Toivanen    7 年前

    您希望从后端为您的站点提供服务,并将链接分发到您的站点。然后,您的客户机为链接添加书签(或将其固定到主屏幕)。

    提供静态HTML文件具有基本限制,您迟早会遇到困难(例如,Ajax调用要求从某个域提供站点服务)。

    从这里开始,你可以选择做你想做的事情。

    传统的方法是将凭证存储委托给底层操作系统。也就是说,只需像往常一样对输入表单进行编程,像往常一样发出cookie,并确保表单HTML是浏览器为保存凭证而提供的。

    另一种解决方案是创建所谓的签名URL。您可以创建加密签名的URL(例如, http://localhost/your/site?hmac=<your_signature> )把那个交给你的客户。一旦您在服务器中处理了该URL并验证了签名是否有效,您就可以使用301重定向对您的站点进行响应,并在重定向响应中发出身份验证cookie。

    对于背景材料,您可能需要阅读 Post/Redirect/Get Message authentication codes .