【问题标题】:Using Selenium Webdriver with Windows Authentication (in Chrome) C#/ASP.Net使用 Selenium Webdriver 和 Windows 身份验证(在 Chrome 中)C#/ASP.Net
【发布时间】:2023-03-26 21:53:01
【问题描述】:

Google 放弃了对通过 URL 传递 Windows 凭据的支持,这对我来说破坏了很多自动化。 (用户名:密码@www.url.com)

https://www.chromestatus.com/feature/5669008342777856

我发现有一个使用我添加的 AutoItX dll 的解决方案,它在本地运行时工作正常,但在部署到 Web 服务器时它不会发送击键。

这就是我所拥有的。

AutoItX.WinWaitActive(authenticateurl + " - Google Chrome", "", 10);
AutoItX.WinActivate(authenticateurl + " - Google Chrome");
AutoItX.Send(AdminUsername + "{TAB}");
AutoItX.Send(AdminUserpass + "{ENTER}");

知道为什么 AutoItX 在部署时无法工作吗?在 Chrome 浏览器中传递 Windows 凭据是否有更好的选择?提前谢谢你!

【问题讨论】:

    标签: c# asp.net selenium google-chrome autoit-c#-wrapper


    【解决方案1】:

    我猜这是因为该代码将在服务器上的低权限用户帐户下运行(很可能是本地系统帐户而不是域帐户)。

    您要么需要交换运行应用程序池的帐户(如果有问题的服务器上有任何含糊不清的机密,请小心)- 或者调试当前帐户不允许访问的原因。

    在第二种情况下,您可以尝试登录机器,以该系统帐户运行浏览器,然后查看事件日志以查看当您尝试手动登录时生成的日志(您也可以在运行时执行此操作如果您没有该帐户的凭据,则您的自动化)。

    【讨论】:

    • 感谢您的回复!应用程序池目前正在使用我的域用户帐户运行,该帐户具有完全权限。我还注册了 dll 看看是否有帮助。
    • 那绝对不是我的建议。如果你在 Windows 上,可能是这个:stackoverflow.com/questions/6810692/… ?
    • 是的,在 Windows Web 服务器上,它是一个使用 Selenium 驱动程序 Autoit dll 的 C# 项目。您拥有的网址只是为了避免注册 dll。我没有那个特殊的问题或需要它。只是想找到一种方法来传递 Windows 凭据。也不会抛出任何错误。
    • 很公平。我能想到的唯一要检查的事情是您是否登录到服务器并浏览到另一个使用类似身份验证的站点以查看发生了什么 - 这可能是由于 Windows Server 的安全限制,而不是您的站点或用户帐户。
    • 所以这肯定是网络服务器上的问题。这是示例以及具有相同行为的 url。只能在本地工作,但不能从已部署的解决方案中工作。 learn-automation.com/…登录认证地址:engprod-charter.net
    猜你喜欢
    • 1970-01-01
    • 2015-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-19
    • 1970-01-01
    相关资源
    最近更新 更多