[ASP.NET] Inloggen op remote server

Pagina: 1
Acties:

  • Mike78
  • Registratie: September 2000
  • Laatst online: 06-05 19:13
Ik ben bezig met een nieuwe intranet applicatie in asp.net.
Door middel van links moet het mogelijk zijn om rapporten(html) op te starten die op een andere webserver staan, zonder dat er een popup verschijnt waarmee de gebruiker moet inloggen.
Die nadere webserver is een UNIX webserver en maakt gebruik van Basic Authentication.

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Uri URL = new Uri("http://" + selectedNode.NavigateUrl);
//Bouw Webrequest
HttpWebRequest HttpWRequest = (HttpWebRequest)WebRequest.Create(URL);
NetworkCredential cred = new NetworkCredential(_username, _password);
CredentialCache credcache = new CredentialCache();
credcache.Add(URL, "Basic", cred);
HttpWRequest.Credentials = credcache;
HttpWRequest.PreAuthenticate = true;
HttpWRequest.KeepAlive = true;
//Haal de response van de server
HttpWebResponse HttpWResponse = (HttpWebResponse)HttpWRequest.GetResponse();

StreamReader sr = new StreamReader(HttpWResponse.GetResponseStream());
String content = sr.ReadToEnd();
            
HttpWResponse.Close();

Response.Redirect(URL.ToString());


Als ik kijk wat er in de variabele
C#:
1
 content 
staat zie ik dat hij wel succesvol is ingelogd en de complete pagina heeft opgehaald.

Als ik deze code uitvoer krijg ik bij de
C#:
1
Response.Redirect(URL.ToString());
toch nog een popup waarin gevraagd wordt om in te loggen. :?

Weet iemand hoe ik dit wel werkend kan krijgen, want ik weet het zo onderhand niet meer?

Eerder gebruikte ik hiervoor als test http://username:password@website maar dat werkt niet meer na patches van microsoft.

[ Voor 16% gewijzigd door Mike78 op 30-05-2005 07:25 ]

24 uur per dag, 24 biertjes in een krat. Toeval?


  • 4of9
  • Registratie: Maart 2000
  • Laatst online: 15-04 15:52
volgens mij is dat sinds een service pack van windows uitgeschakeld dat je met dat soort URL in de vorm van user:password@website kunt inloggen.

Je kunt dat wel aanpassen met een registry key geloof ik

code:
1
2
3
4
5
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl] 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE]
"iexplore.exe"=dword:00000000
"explorer.exe"=dword:00000000

Aspirant Got Pappa Lid | De toekomst is niet meer wat het geweest is...


  • Mike78
  • Registratie: September 2000
  • Laatst online: 06-05 19:13
4of9 schreef op vrijdag 27 mei 2005 @ 13:21:
volgens mij is dat sinds een service pack van windows uitgeschakeld dat je met dat soort URL in de vorm van user:password@website kunt inloggen.

Je kunt dat wel aanpassen met een registry key geloof ik

code:
1
2
3
4
5
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl] 
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_HTTP_USERNAME_PASSWORD_DISABLE]
"iexplore.exe"=dword:00000000
"explorer.exe"=dword:00000000
Ja die hack kende ik en werkt ook wel, maar het is geen optie om van alle werkstations het register aan te passen.

24 uur per dag, 24 biertjes in een krat. Toeval?


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Response.Redirect zend een code naar de client en een verzoek om zich te melden op de door jou aangegeven URL. Vervolgens legt de client browser een verbinding aan met de gegeven server. Deze gebruikt een andere credential cache dan jouw webserver, waarmee je de verbinding initieel aanlegt. Volgens mij kan het dan ook niet op deze manier.

Misschien dat je je eens moet verdiepen in het Microsoft Passport model, die dit soort shared logins ook toepast. Ik ga er wel van uit dat je invloed kunt uitoefenen op de server waarop je probeert in te loggen.

  • Mike78
  • Registratie: September 2000
  • Laatst online: 06-05 19:13
bigbeng schreef op maandag 30 mei 2005 @ 08:13:

Misschien dat je je eens moet verdiepen in het Microsoft Passport model, die dit soort shared logins ook toepast. Ik ga er wel van uit dat je invloed kunt uitoefenen op de server waarop je probeert in te loggen.
Helaas heb ik weinig tot geen invloed op die server, en buitendat is het een UNIX webserver, dus volgens mij werkt het passport model dan niet. Of toch wel?

24 uur per dag, 24 biertjes in een krat. Toeval?


  • bigbeng
  • Registratie: Augustus 2000
  • Laatst online: 26-11-2021
Met het passport model bedoelde ik meer het principe. Ik ken de ins en outs ook niet helemaal, maar het komt er op neer dat je met een browser 1x inlogt op een passport site (er wordt ws een site-onafhankelijke cookie geset of zoiets), en dat andere passport sites die cookie lezen en checken of de credentials in orde zijn. Dit is in principe onafhankelijk van het OS van de webserver waar je op inlogt.

Maar het vereist dan wel dat zowel de webserver waarmee de client eerst verbinding maakt als degene waarnaar geredirect wordt in staat zijn om dit soort credentials te checken.
Pagina: 1