Ciao,
considerando le diverse possibilità per l'autenticazione, nel mio caso devo escludere Form authentication e il metodo che usa soap header.
Perché il mio web method è invocato "dietro le quinte" dai portali dei partner quando si accede ad una particolare sezione.Rispettivamente non posso quindi usare una form esplicita per il login nè introdurre una classe aggiuntiva che eredita da SoapHeader.
Sarei quindi più orientato verso la [b]windows authentication[/b].
Ho disabilitato l'accesso anonimo per il mio web service e passo le credenziali da un'applicazione client di test nel seguente modo:
WorkspaceSynchronization ws = new WorkspaceSynchronization();
NetworkCredential credentials = new NetworkCredential("userName", "pwd");
ws.Credentials = credentials;
ws.PreAuthenticate = true;
Ottengo tuttavia un'eccezione 401 (Unauthorized access) e dal web method non sono in grado di reperire il nome utente tramite il seguente codice:
System.Security.Principal.IIdentity p = HttpContext.Current.User.Identity;
string s = p.Name; //s è vuota
Qualche consiglio? Sto tralasciando qualche passaggio?
Grazie di nuovo