Hej, tja, du kan ju kräva nån typ av lösen i webmethoden! Har testat att lägga in inloggning/lösenordshantering mha soapheadern, enligt nedan. Du får ursäkta, men jag fattar inte vitsen med att använda sig av en webservice i detta fall? Nej, det finns ingen uppenbar vits egentligen att använda webservicar i detta fall. Förutom att det blir en skiktad lösning (håller asp.net-klienten någorlunda tunn och har all db-hantering o logik i webservicarna) och att det i framtiden går att återanvända vissa av webservicarna i andra applikationer med andra typer av klienter. Det borde gå att uppnå det du frågar efter, men jag vet inte hur. :( Det authenticate-events du kan använda dig av, skriv en egen global.asax och lek lite. Där kan du t.ex. kolla från vilken ip-anropet kommer ifrån, och utifrån den bestämma om tillträde ska beviljas eller inteHur begränsa åtkomst av webservice så att endast asp.net app på samma IIS
har en asp.net applikation som använder en webservice, båda är installerade på samma IIS. Vill att webservicen ska vara åtkomlig endast för just denna asp.net applikation.
Har provat att i IIS sätta behörighet endast för den aktuella ip-adressen på webservice-applikationen, men det verkar inte fungera..
Någon som har några tips om hur man kan lösa detta?
Mvh Siri2 varianter!
Annars är det väl allra enklast att lägga in de metoder som finns i webservicen
direkt i din asp.net applikation. Känns lite onödigt att de ska behöva ligga i en webservice om det endast är din asp.net applikation som har tillgång till metoderna.
tjosan!Sv: 2 varianter!
I asp.net före "riktiga" anropet till webservices:
<code>
Dim clientHeader As New myProxy.AuthHeader
clientHeader.UserName = "myuser"
clientHeader.Password = "mypwd"
oWS.AuthHeaderValue = clientHeader
Dim bAuth As Boolean = oWS.WS_AuthenticateMe
If not bAuth Then
'Not authenticated, show error message
else
'Authentication OK, go on and call webservice method
end if
</code>
I webservicen:
<code>
<WebMethod(), SoapHeader("sHeader")> _
Public Function WS_AuthenticateMe() As Boolean
If (sHeader Is Nothing) Then
'"Error. Wrong username/pwd."
Return false
Else
'check username and and password against db here, return true or false
'....
Return true
End If
End Function
</code>
Detta fungerar ju ok, men detta anrop till WS_AuthenticateMe måste ju göras varje gång en webservice anropas. Tänkte att det kanske fanns något alternativt sätt?
Alternativt kan man väl använda WSE. Men jag tänkte att det kanske gick att sköta säkerheten direkt i IIS i detta fall?
Mvh SiriSv:2 varianter!
Släng in metoderna i en klass i ditt asp.net projekt, så uppnår du det du vill!
Sv: 2 varianter!
(Tappar man mycket i prestanda på att ha webservicar ist. för klasser i ett asp.net projekt?)
Så med tanke på hur webservicarna ska användas i framtiden är det kanske dumt att hänga upp sig på att webservicarna nu endast ska användas "internt" ii IIS:en. Om man nu ska ha webservicar är antagligen det bästa och säkraste sättet att använda WSE?
Mvh SiriSv:2 varianter!
Mitt förslag är att du använder dig av autentisierings koden du har sålänge.
googla hårt nån timma så kanske det löser sig!Sv: Hur begränsa åtkomst av webservice så att endast asp.net app på samma IIS