Cme proteggere l'esecuzione di un WebService?

martedì 22 luglio 2008 - 10.55

sacsacsac Profilo | Newbie

Ciao a tutti,
come viene gestita la sicurezza, o la protezione di esecuzione di un WebService?

La domanda forse potrebbe non essere chiara o generica e provo a farmi comprendere con un esempio.

Io ho un metodo di WebService che esegue ad esempio l'inserimento di un articolo in un archivio.
Come faccio ad essere sicuro che il WebService è eseguito solamente dall'utente iscritto?

Che meccanismo devo implementare per essere sicuro che il mio WebService è eseguito solamente dalla mia pagina ASP.NET o WinForm e non magari da intenzionati che possono farlo invocando il webService direttamente dal Browser?

Spero di essere stato chiaro.
Grazie a tutti
Ciao

rossimarko Profilo | Guru

Ciao,

puoi utilizzare varie strade. Te ne elenco alcune:
- SoapHeader in cui passare i dati relativi a username e password (http://msdn.microsoft.com/it-it/library/8728chd5.aspx)
- Aggiungere ai tuoi metodi due parametri user e password per fare la validazione (non è sicuramente una soluzione elegante)
- Inserire la FormsAutentication all'interno del progetto così puoi gestire l'autenticazione anche nei metodi del webservice. Per poter fare la chiamata dal client puoi prendere spunto da questo post: http://blog.webgear.co.nz/archive/2007/11/23/forms-authentication-in-web-services.aspx
- Utilizzare la WindowsAuthentication (http://support.microsoft.com/kb/813834)

Valuta anche il fatto che i dati relativi a username e password passano in chiaro se non usi https. Nel caso del soapheader ad esempio potresti risolvere inserendo un'algoritmo per cifrare i dati.
-----------------------------------------
Rossi Marco
http://blogs.dotnethell.it/rossimarko

sacsacsac Profilo | Newbie

Grazie RossiMarko,
ottimo!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5