Ik werk momenteel aan een C# intranet webapplicatie en hierbij loop ik tegen een raar probleem met impersonation aan.
Er is sprake van twee IIS-servers en een webclient in de vorm van chrome.
Server A heeft Windows Authentication enabled, als ik deze benader vanaf mijn client krijg ik netjes mijn gebruikersnaam + domein van de client te zien in de response
Server B heeft Windows Authentication enabled en Asp.Net Impersonation enabled, als ik deze benader vanaf mijn client krijg ik opnieuw mijn gebruikersnaam + domein van de client te zien in de response.
Nu het probleem
Server B wil ook server A benaderen en daarvoor de authenticatie van de client gebruiken. Ik doe dus een request naar server B vanaf de client en server B gaat op zijn beurt een webrequest doen naar server A. De response hierop is een 401.
De credenitals stuur ik als volgt mee aan het request:
Bouw ik zelf de credentials op in de code, dan krijg ik wel een goede response van de server
Nu lees ik op MSDN
Nu de vraag: wat wordt in de quote met specify bedoeld? Is het de bedoeling dat je de user expliciet aangeeft in de config dan wel code en dus niet de impersonated user?
Er is sprake van twee IIS-servers en een webclient in de vorm van chrome.
Server A heeft Windows Authentication enabled, als ik deze benader vanaf mijn client krijg ik netjes mijn gebruikersnaam + domein van de client te zien in de response
Server B heeft Windows Authentication enabled en Asp.Net Impersonation enabled, als ik deze benader vanaf mijn client krijg ik opnieuw mijn gebruikersnaam + domein van de client te zien in de response.
Nu het probleem
Server B wil ook server A benaderen en daarvoor de authenticatie van de client gebruiken. Ik doe dus een request naar server B vanaf de client en server B gaat op zijn beurt een webrequest doen naar server A. De response hierop is een 401.
De credenitals stuur ik als volgt mee aan het request:
code:
1
| req.Credentials = CredentialCache.DefaultNetworkCredentials; |
Bouw ik zelf de credentials op in de code, dan krijg ik wel een goede response van de server
Nu lees ik op MSDN
MSDN: ASP.NET ImpersonationIf you enable impersonation and do not specify a domain account as the identity, you will not be able to connect to another computer on the network unless your IIS application is configured to use Basic authentication.
Nu de vraag: wat wordt in de quote met specify bedoeld? Is het de bedoeling dat je de user expliciet aangeeft in de config dan wel code en dus niet de impersonated user?
[ Voor 0% gewijzigd door PeaceNlove op 10-06-2014 13:07 . Reden: stomme fout ]