How process NTLM authentication in Unity3d width UnityWebRequest. I did steps:
- Send simple request to some url1. Receive responce with header WWW-Authenticate Negotiate,NTML
- 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();
}
}