-
Notifications
You must be signed in to change notification settings - Fork 1.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
URI's user info not used? #3
Comments
It should be passed into the URI as part of the If you're connecting to the server over HTTP, can you capture the stream using fiddler or wireshark? That should give you more info on what exactly is getting sent over the wire. |
ras0219-msft: Yes, I see that now, and the result of the call to Join() is apparently what's passed to WinHttpOpenRequest() at line ~500 in http_client_winhttp.cpp. However, after much experimentation and largely unproductive Web searching I've not managed to make Casablanca actually send the credentials. Experimenting with wget I've determined that it always sends its first request without credentials (which is the behavior I get from Casablanca). The server's 401 response to that request contains a header,
It appears that the I'm stumped at the moment. -evan |
Since you know the website is expecting basic auth, you can manually add the authorization header:
|
I took a more thorough look at Casablanca's sending of requests and found that it does have code to retry connections that fail due to authentication challenges. At least it does in Windows (http/client/http_client_winhttp.cpp). Knowing this I started setting up an environment where I could watch it work and see where it failed. Before I did so, I tried again, just be sure I still had a problem. Of course, it worked that time. While I "know" that I was seeing only one attempt by Casablanca and two by wget, I didn't save those Wireshark captures, so I have no proof. Between the failures and eventual success, the vendor whose site I was accessing fixed my account so I could actually authenticate, which may have some bearing, but wget tried twice and failed twice before the credentials were valid; now it tries twice and succeeds on the second try, so if the credential fix made the difference, is not obvious how. ras0219-msft, thanks for your help. I will try your hand-made headers idea, as the eventual production implementation will be making thousands of connections a day, and providing credentials on the first connection will save half of them. -evan |
I confirm @eburkitt's original finding that |
* Add headers to lua for better VS experience * Hold linked callbacks separately, deregister them on destruction * Replace _JoinAllTokens_Add with cancellation_token_source::create_linked_source, pare down helper structs
I am attempting to communicate with a Web service that expects a user name and password in the URL (e.g., HTTP://username:password@domain.top). I'm supplying user info in the base URL, but it's not being sent that I can see. Further, I see no code in the Casablanca project that would send it. No code other than
uri_builder
anduri
class manipulation callsuri_builder::user_info()
.Does Casablanca, in fact, make no use of these data? If so, what can I do to work around this omission?
-evan
The text was updated successfully, but these errors were encountered: