Piemonte Lab

Esperienze di programmazione

Collegarsi ad un webservice svc e richiamare una funzione a runtime direttamente da codice visual studio.

WebServiceHost host = new WebServiceHost(typeof(ServiceReference2.ServiceClient), new Uri("http://www.piemontelab.com/test.svc/"));
            ServiceEndpoint ep = host.AddServiceEndpoint(typeof(ServiceReference2.Service), new WebHttpBinding(), "");

            using (ChannelFactory<ServiceReference2.Service> cf = new ChannelFactory<ServiceReference2.Service>(new WebHttpBinding(), "http://www.piemontelab.com/test.svc"))
            {
                cf.Endpoint.Behaviors.Add(new WebHttpBehavior());

                ServiceReference2.Service channel = cf.CreateChannel();

                string sjson = "{'par1':'value_of_par1'}";
                MemoryStream memStream = new MemoryStream();
                StreamWriter writer = new StreamWriter(memStream);
                writer.Write(sjson);
                writer.Flush();
                memStream.Position = 0;

                var s = channel.function1(memStream);
            }
host.Close();

Il riferimento a 'ServiceReference2' naturalmente è stato ottenuto mediante la funzione 'aggiungi riferimento web'.

Autenticazione con credenziali direttamente sul web.config - visual studio - c#

In questi giorni ho dovuto creare una semplice schermata di login senza utilizzare database.

La soluzione è stata creare gli utenti direttamente nel web.config.

Può essere utile anche nel caso il sito che state sviluppando si appoggi ad un database, perché magari avete un solo amministratore e quel sito con 10 visite al mese non ha particolari necessità a livello di sicurezza.

Nel web.config occorre mettere:

<authentication mode="Forms">
   <forms loginUrl="~/Login.aspx" path="/" defaultUrl="~/Default.aspx">
    <credentials passwordFormat="Clear">
     <user name="nomeUtente" password="passwordUtente"/>
    </credentials>
   </forms>
  </authentication>

Invece questa è la parte di codice:

if (FormsAuthentication.Authenticate(txt_UserName.Text, txt_Password.Text))
 {
  FormsAuthentication.SetAuthCookie(txt_UserName.Text, false);
  FormsAuthentication.RedirectFromLoginPage(txt_UserName.Text, false);
 }
 else
 {
  //Errore di connessione, utente sbagliato
 }

 

That's all!