domenica 23 agosto 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 richiamabile da altre applicazioni o dalla stessa  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


Nessun commento:

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...