Go 如何使用NTLM auth打开浏览器

Go 如何使用NTLM auth打开浏览器,go,Go,我正在尝试模拟浏览器,打开intranet url并获取状态代码401。如何使用ntl身份验证或登录打开url,通过? 谢谢 如何使用ntl身份验证或登录打开url,通过?谢谢 1.哦,对不起,ntl是NTLM 2。服务器“透明地”对我进行身份验证 我将假定该用户已针对AD域进行身份验证 首先,协议不像基本身份验证那样简单。它是一个涉及一些系统/用户特定数据的多步骤协议。客户端和服务器需要在协商HTTP头中交换一些质询/应答数据 我建议使用现成的图书馆;e、 g或 注意:当使用SPNEGO(NT

我正在尝试模拟浏览器,打开intranet url并获取状态代码401。如何使用ntl身份验证或登录打开url,通过? 谢谢

如何使用ntl身份验证或登录打开url,通过?谢谢

1.哦,对不起,ntl是NTLM 2。服务器“透明地”对我进行身份验证

我将假定该用户已针对AD域进行身份验证

首先,协议不像基本身份验证那样简单。它是一个涉及一些系统/用户特定数据的多步骤协议。客户端和服务器需要在协商HTTP头中交换一些质询/应答数据

我建议使用现成的图书馆;e、 g或


注意:当使用SPNEGO(NTLM over HTTP)身份验证时,根据AD设置,如果用户/服务主体有太多角色,协商HTTP头可能会变得非常大。如果您对HTTP头有任何默认限制,您可以观察是否未达到该限制。

您需要模拟浏览器,还是只对内部网中的资源执行HTTP请求就足够了?需要模拟浏览器?请回答以下几个问题:1)您问题中的“ntl”是否表示“NTLM”?2) 当您使用桌面上的浏览器以“正常方式”浏览
url时会发生什么?服务器是否“透明地”对您进行身份验证(无需询问),或者是否发布弹出对话框,要求您输入用户名和密码?或者站点页面是否显示某种登录表单,要求您提供您的凭据?(如您所见,您的问题不适合StackOverflow格式;严格来说,它在这里。最好在或(比如)在或适合于此类自由形式的问题上问此类问题,这意味着多次来回对话。)1。哦,对不起,ntl是NTLM 2。服务器“透明地”对我进行身份验证
package main

import (
    "gopkg.in/headzoo/surf.v1"
        "fmt"
)

func main() {
    bow := surf.NewBrowser()
    bow.AddRequestHeader("Accept", "text/html")
    bow.AddRequestHeader("Accept-Charset", "utf8")
    err := bow.Open(url)
    if err != nil {
        panic(err)
    }

    fmt.Println(bow.StatusCode())
}