Unity3d中的错误进程NTLM身份验证

时间:2017-11-17 07:25:46

标签: authentication unity3d ntlm-authentication

如何在Unity3d宽度UnityWebRequest中处理NTLM身份验证。 我做了一些步骤:

  1. 向一些url1发送简单请求。 通过标题WWW-Authenticate Negotiate,NTML
  2. 接收响应
  3. 使用Header“Authorization”将请求发送到url1 “NTML”+ System.Convert.ToBase64String(Text.Encoding.UTF8.GetBytes(login) 我得到哈希码,但我再次得到相同的响应(在第1步)
  4. 我试试这段代码:

    string url = "some_url";
    public void Start()
    {
        StartCoroutine(Test(1, url, OnStep1));
    }
    
    private void OnStep1()
    {
        StartCoroutine(Test(2, url, OnStep2));
    }
    
    private void OnStep2()
    {
    }
    
    private void AddHeaders(UnityWebRequest request)
    {
        var value = "NTLM " + System.Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("login"));
        request.SetRequestHeader("Authorization", value);
    }
    
    private IEnumerator Test(int step, string url, Action Callback)
    {
        var webRequest = UnityWebRequest.Get(url);
        if (step == 2)
        {
            AddHeaders(webRequest);
        }
    
        yield return webRequest.Send();
        if (webRequest.isNetworkError)
        {
            Debug.Log(" Error: " + webRequest.error);
        }
        else
        {
            Debug.Log("xxx step " + step + " responseCode " + webRequest.responseCode);
    
            var dict = webRequest.GetResponseHeaders();
            Debug.Log("xxx dict " + dict.Count);
            foreach (var el in dict)
            {
                Debug.Log("xxxx step " + step + " header " + el.Key + " " + el.Value);
            }
    
            Callback();
        }
    }
    

0 个答案:

没有答案