(JavaScript) HTTPS Windows Integrated Authentication
This example pertains to running on the Windows operating system only.
It provides guidance on how to send HTTP requests using the current logged-on Windows user credentials. This is where NTLM/Negotiate authentication is used, but the login/password credentials are not explicitly provided by the application, but are implicitly provided based on the Windows logged-on user (i.e. the Windows account for the running process).
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
var http = new CkHttp();
// Chilkat implements the NTLM protocol directly, which is how it can be used on non-Windows systems.
// However, Chilkat can also optionally use Microsoft's SSPI (see https://docs.microsoft.com/en-us/windows/desktop/secauthn/ssp-packages-provided-by-microsoft)
// to allow for Windows Integrated Authentication.
// Setting the HTTP Login equal to the empty string, and the Password equal to the keyword "default"
// will cause Chilkat to use the Microsoft SSPI w/ integrated authentication.
http.Login = "";
http.Password = "default";
// We can also explicitly indicate that NTLM or Negotiate authentication is to be used:
http.NegotiateAuth = true;
// Set various properties unrelated to authentication..
// Automatically follow redirects.
http.FollowRedirects = true;
// Give verbose logging in the LastErrorText (in case there are errors)
http.VerboseLogging = true;
// Optionally log the exact session to a file (for debugging)
http.SessionLogFilename = "c:/someDir/session.txt";
// Perhaps you wish to be seen as a browser on Mac OS X..
http.UserAgent = "Mozilla/5.0 (Windows NT; Windows NT 6.1; en-GB) AppleWebKit/534.6 (KHTML, like Gecko) Chrome/7.0.500.0 Safari/534.6";
// Note: If the result of authentication is to set Cookies that are used in subsequent requests,
// then make sure Chilkat both saves and sends cookies:
http.SaveCookies = true;
http.SendCookies = true;
http.CookieDir = "memory";
// Send a GET request to a URL, using Windows Integrated Authentication...
var responseStr = http.QuickGetStr("https://somewhere.net/api/user");
if (http.LastMethodSuccess !== true) {
console.log(http.LastErrorText);
return;
}
console.log("response status code = " + http.LastStatus);
console.log("response header:");
console.log(http.LastHeader);
console.log("----");
console.log(responseStr);
|