webForumDet fria alternativet

Logga in till webservice

.NET

2 svar · 516 visningar · startad av ironhead

Medlem sedan mars 20011 346 inlägg
Frågan#1

Hej superhjältar!

Jag har skrivit en mycket enkel webservice som funkar fin fint.

Nu skulle jag vilja skydda denna service genom att ta bort "allow anonymous access" i IIS (W2k3 Server) och logga in med denna kod:

Dim ws As New WebService
ws.Credentials = New NetworkCredential("anvnamn", "password")

men det enda som händer är att jag får upp en inloggningsruta. Hur ska man kunna logga in till en webservice med "Integrated Windows Autentication"?

Medlem sedan mars 20011 346 inlägg
#2
Dim myCredentials As CredentialCache = New CredentialCache
Dim netCred As NetworkCredential = New NetworkCredential("domän\anvnamn", "lösenord")
myCredentials.Add(New Uri(ws.Url), "Basic", netCred)
ws.Credentials = myCredentials

och detta i web.config

<authentication mode="Windows"/>
<identity impersonate="true" />

...med "Basic authentication" ikryssad i IIS.
funkar ändå inte...loginrutan kommer upp...kryssar jag i "allow anonymous access"
funkar det bra :-\

Vad är det jag missar? Kan man inte använda "Integrated Windows Autentication" via webben? isf hur ska man då säkra en webservice?

Medlem sedan mars 20011 346 inlägg
#3

Jaha! Då fick man bevisa att man inte är den smartaste ;)
Jag hade satt "Integrated Windows Authentication" på hela webbsiten istf endast på Webservicen...funkar ju mycket bättre så :)

Dim myCredentials As CredentialCache = New CredentialCache
Dim netCred As NetworkCredential = New NetworkCredential("UserName", "Password", "Domain")
myCredentials.Add(New Uri(ws.Url), "Basic", netCred)
ws.Credentials = myCredentials

...och fångar upp ev. fel med try/catch (System.Net.WebException)

Tack å hej!

268 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
133 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)