1

How process NTLM authentication in Unity3d width UnityWebRequest. I did steps:

  1. Send simple request to some url1. Receive responce with header WWW-Authenticate Negotiate,NTML
  2. Send reques to url1 with Header "Authorization" with value "NTML" + System.Convert.ToBase64String(Text.Encoding.UTF8.GetBytes(login) And I mush get hash code, but I again the same response (at step 1)

I try this code:

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();
    }
}
Knaus Irina
  • 789
  • 5
  • 15
  • 35

0 Answers0