我如何验证整个计算机而不是web浏览器

本文关键字:计算机 浏览器 web 何验证 验证 | 更新日期: 2023-09-27 18:07:03

在过去的2年中,我们为我的一个客户创建了3个桌面应用程序和2个管理部分(web)。每个应用程序都使用自己的身份验证过程。我已经合并了认证过程的web在单一单元。但是客户端希望在桌面应用程序和网站上都有一个屏幕进行身份验证。

他也想使用不同的浏览器,用户名/密码应该只问一次,不管浏览器打开。

我尝试使用cookie的网页。但是每个浏览器都有自己的cookie。

有谁能建议我如何验证整个计算机的用户,使验证信息对桌面应用程序和网站可用,而不管使用的浏览器是什么?

Edit: 根据joe的建议,使用windows身份验证在我的情况下是不可能的。所以我创建了一个表与以下列ip、userid authenticatedat当一个用户通过身份验证时,我将其ip、userid和时间插入到表中。当非身份验证用户首先出现时,我会查看表中是否存在IP并在30分钟内进行身份验证,我假设用户已经过身份验证,并使用所需的数据设置会话/变量。我已经检查过了,发现它正在工作。

我发现这是不安全的

我如何验证整个计算机而不是web浏览器

Windows身份验证是我所知道的唯一方法。假设您的用户在您控制的域中,那么他们的Windows凭据将对他们进行验证,并且他们永远不需要输入用户名和密码。

除此之外,我只能想到一些肮脏的方法来实现这一点。你可以在他们的机器上安装一个身份验证服务,这个服务可以从其他应用程序远程连接——这些应用程序将调用你的服务,服务将对用户进行身份验证并传递一个身份验证令牌。对于Windows应用程序来说很简单,但要在web应用程序上运行就不那么有趣了。你的web服务器将无法与此服务通信,所以你必须依靠客户端javascript与服务通信并检索令牌或哈希,然后javascript将其传递给web服务器。

任何你放在本地机器上的东西,你必须假设用户可以逆向工程和操作,所以如果你需要真正的安全性,我怀疑你会找到一个解决方案。最好的办法是让用户每次需要登录时都登录,并将您的身份验证/授权代码放在您的web服务层上。