domenica 5 luglio 2026

SourceCodeSafer aggiunta chiusura "automatica" dell'applicazione che fornisce la password da remoto

SourceCodeSafer 4.7 alpha , qui  il codice : aggiunta la possibilità di chiudere automaticamente l'applicazione che fornisce la password  dopo aver fornito la password una sola volta , in pratica dopo che viene fornita la password se il checkbox dell'applicazione PasswordSupplier è selezionato , viene chiamato Application.Exit() contenuto dal metodo StopApplication ,di default il checkBox è selezionato :



public void StopApplication()

{
    Form1 f = (Form1)Application.OpenForms["Form1"];
    CheckBox cb = (CheckBox)f.Controls.Find("checkBox1", true)[0];
    if (cb.Checked) {
        Application.Exit();  //questo chiude l'applicazione PasswordSupplier
    }       
}

segue il metodo GetPasswordFromRemoteAddress di WindowsFormsProtector che chiama
il metodo ,tramite WCF , StopApplication di PasswordSupplier dopo aver recuperato
la password

private void GetPasswordFromRemoteAddress(object sender, EventArgs e)
{
    try
    {
        RSACryptoServiceProvider rsa = new RSACryptoServiceProvider();
        string publicKey = rsa.ToXmlString(false); // false to get the public key   
        string address = this.textBox5.Text;                
        ChannelFactory<IService> cf =
            new ChannelFactory<IService>(new WebHttpBinding(), address);
        //WebHttpBehavior abilita il modello di programmazione Web per un
        //servizio Windows Communication Foundation (WCF).
        cf.Endpoint.Behaviors.Add(new WebHttpBehavior());
        //crea il canale di comunicazione
        IService channel = cf.CreateChannel();
        //viene invocato il metodo GetPassword sul channel il cui indirizzo è address                
        byte[] encryptedData = channel.GetPassword(publicKey);
        //viene valorizzato decryptedData con l'array di bytes ritornati
        //dal metodo RSADecrypt
        byte[] decryptedData =
            RSADecrypt(encryptedData, rsa.ExportParameters(true), true);
        UnicodeEncoding convertToString = new UnicodeEncoding();
        string str = "";
        str = convertToString.GetString(decryptedData);
        this.textBox2.Text = str;
        channel.StopApplication();
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message.ToString());
    }
}

Lo scopo di questa modifica è rendere non chiamabile da altre applicazioni PasswordSupplier dalla quale potrebbero ottenere la password .In fase di test interno potrebbe essere utile poter eseguire più volte PasswordSupplier senza doverlo rieseguire ed inserire i dati ogni volta (l'url di dove viene reso disponibile il servizio ,la password da passare ) ,per questo possiamo deselezionare il checkBox di PasswordSupplier,

spero possiate lasciare un commento o scrivere un email a gianmarco.castagna@gmail.com  per segnalare errori o malfunzionamenti o dare suggerimenti o se qualcosa non è chiaro


SourceCodeSafer aggiunta chiusura "automatica" dell'applicazione che fornisce la password da remoto

SourceCodeSafer 4.7 alpha ,  qui   il codice : aggiunta la possibilità di chiudere automaticamente l'applicazione che fornisce la passwo...