C# 将凭据传递到IE身份验证弹出窗口的应用程序

C# 将凭据传递到IE身份验证弹出窗口的应用程序,c#,internet-explorer,authentication,bho,C#,Internet Explorer,Authentication,Bho,这可能已经被问过了,但我没有看到任何地方 本质上,我想做的是运行一个小型的C#应用程序(编辑:或BHO),并在用户启动IE(8或更高版本)时进行检测。一旦启动,它只需坐在那里,直到它注意到IE中出现了验证挑战弹出窗口。然后它将隐藏IE弹出窗口,并向用户提供自定义验证弹出窗口。这个新的弹出窗口将把输入的凭证传递回IE进行身份验证 应用程序(或服务)将缓存凭据,并将其传递给本地Intranet上接收到的任何进一步的身份验证弹出窗口。这是一种定制的准单点登录解决方案 在人们开始建议更改IE或服务器上的

这可能已经被问过了,但我没有看到任何地方

本质上,我想做的是运行一个小型的C#应用程序(编辑:或BHO),并在用户启动IE(8或更高版本)时进行检测。一旦启动,它只需坐在那里,直到它注意到IE中出现了验证挑战弹出窗口。然后它将隐藏IE弹出窗口,并向用户提供自定义验证弹出窗口。这个新的弹出窗口将把输入的凭证传递回IE进行身份验证

应用程序(或服务)将缓存凭据,并将其传递给本地Intranet上接收到的任何进一步的身份验证弹出窗口。这是一种定制的准单点登录解决方案

在人们开始建议更改IE或服务器上的设置之前,请知道这是不可能的。上述解释正是我们需要做的。我也不喜欢

我们目前有一个小型的内部工具,用C++编写(不.NET),它非常成功地处理了这个完全相同的行为,但是源代码不再用于修复/升级。 一切都会有帮助的。谢谢大家


仅供参考-刚刚看到第一条评论。不,这不是一种恶意软件、pwd欺骗软件或类似软件。员工将获得一个定制的、带有公司徽标的凭证弹出窗口,以处理所有事务。它的目的是处理多种不同类型的身份验证(有些是自定义的),这些身份验证特定于我们内部网中的不同站点。

老实说,这个概念很危险。您正在绕过操作系统的安全模型来迎合懒惰的用户

另一个问题是您的体系结构是支离破碎的。如果您在一个大组织中有大量工作站没有使用适当的平台进行统一身份验证(如AD/LDAP/等),那么您将陷入一个很难维护的混乱局面

你在这里做的是堵住一个洞,而不是修补裂缝。我强烈建议您使用这种缺乏源代码的方式,将系统“修补”在一起,作为变革的催化剂

如果您下定决心要让基础架构保持原样,那么您应该寻找经过测试和验证的软件解决方案来帮助您的用户保持正常

请看一个自由和开放源码软件应用程序。它将允许您安全地存储密码(您的提案无论如何都必须解决这个问题),并且您可以让您的用户将其数据库存储在他们随时随身携带的U盘上。他们可以登录一次KeePass数据库,并使用自动键入热键在提示他们输入的各种登录框中输入密码。这不仅适用于IE身份验证请求,还适用于所有应用程序

好的方面是你可以让人们使用相对强大的密码,因为他们只需要记住一个(keepassdb)



最终,您将在试图抓住授权挑战时遇到问题,即使您现有的解决方案也可能以非常黑客的方式进行,您将发现在未来继续这种行为越来越困难。这主要是因为它是一个“充其量也不确定”的解决方案,随着安全性的成熟,它可能会变得更难执行。

老实说,这个概念是危险的。您正在绕过操作系统的安全模型来迎合懒惰的用户

另一个问题是您的体系结构是支离破碎的。如果您在一个大组织中有大量工作站没有使用适当的平台进行统一身份验证(如AD/LDAP/等),那么您将陷入一个很难维护的混乱局面

你在这里做的是堵住一个洞,而不是修补裂缝。我强烈建议您使用这种缺乏源代码的方式,将系统“修补”在一起,作为变革的催化剂

如果您下定决心要让基础架构保持原样,那么您应该寻找经过测试和验证的软件解决方案来帮助您的用户保持正常

请看一个自由和开放源码软件应用程序。它将允许您安全地存储密码(您的提案无论如何都必须解决这个问题),并且您可以让您的用户将其数据库存储在他们随时随身携带的U盘上。他们可以登录一次KeePass数据库,并使用自动键入热键在提示他们输入的各种登录框中输入密码。这不仅适用于IE身份验证请求,还适用于所有应用程序

好的方面是你可以让人们使用相对强大的密码,因为他们只需要记住一个(keepassdb)



最终,您将在试图抓住授权挑战时遇到问题,即使您现有的解决方案也可能以非常黑客的方式进行,您将发现在未来继续这种行为越来越困难。这主要是因为它是一个“充其量也不确定”的解决方案,随着安全性的成熟,它可能会变得更难执行。

我最终找到并决定了一个已经作为原型(非常有限的原型)工作的解决方案。还有很多工作要做,但至少在隧道的尽头有光明。如果我选择了另一条路线或收到更好的建议,我一定会更新这些信息。对于那些可能曾经需要类似(可疑)东西的人,这里基本上是我正在做的

浏览器辅助对象

  • 用每个新的IE实例实例化
  • 向IE注册以接收正在创建的事件和新窗口/控件
  • 钩子接收逻辑控件的描述,以决定执行什么操作
  • 每个验证对话框窗口或控件的句柄
  • H