[WCF]: Servizi con credenziali di accesso

martedì 23 febbraio 2010 - 15.26

spighyunited Profilo | Newbie

Salve,
sono nuovo del forum...Anzitutto Complimenti!!!! Sto da giorni sbattendo la testa contro Google e dintorni...Ho la necessità di sviluppare un servizio in WCF che obblighi i Client, che utilizzano il servizio, a fornire le proprie credenziali di accesso (Username e Password).
Ovviamente, la prima cosa che ho fatto è stata quella di cercare su Google esempi a riguardo, ma purtroppo, ho notato che in prima istanza appaiono semplici e funzionanti, mentre in pratica non riesce nemmeno a partire il servizio del Server.
Passiamo adesso un pò la parola al Codice:

1. App.Config del Server
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

2. Program.cs del Server

ServiceHost host = new ServiceHost(typeof(ServiceA)); host.Open(); Console.WriteLine("Host listening ..."); Console.ReadLine();

3. CustomUserNameValidator.cs (classe per la validazione dell'Utente e si trova nel Server)
public class CustomUserNameValidator : UserNamePasswordValidator { public override void Validate(string userName, string password) { if (null == userName || null == password) { throw new ArgumentNullException(); } if (!(userName == "pippo" && password == "miaPassword")) { throw new FaultException("Unknown Username or Incorrect Password"); } } }

4. App.Config del Client

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

5. Form1.cs del Client

ChannelFactory<IServiceA> factoryA = new ChannelFactory<IServiceA>(""); factoryA.Credentials.UserName.UserName = "pippo"; factoryA.Credentials.UserName.Password = "miaPassword"; m_proxyA = factoryA.CreateChannel(); m_proxyA.Operation1();

Non riesco a capire come mai la funzione Validate del CustomUserNameValidator non viene mai invocata e posso invocare l'Operation1 indipendentemente dalle credenziali, quindi accedo al servizio senza controllo aggiunto...Qualcuno ha un'idea a riguardo?
Grazie e buona programmazione a tutti!!!!
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-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5