• 4 odgovora
  • 2.720 pregleda
C#: app.config unos/citanje 22.05.2011. u 17:33 · pre 187 meseci #1
Potrebno mi je nekako da pamtim odredjena podesavanja (stringovi iz texboxova medju kojima je i sifra) da ih ne bih unosio uvijek prilikom startovanja programa. Zanima me da li je ta podesavanja moguce nekako unijeti u app.config i kako raditi update tih podesavanja. Ako nije moguce, trebala bi mi pomoc oko kreiranja novog xml fajla (gledao sam neke tutoriale ali su slozeni sadrze liste sekcije itd. a meni treba jednostavno upis/citanje u/iz textbox/a) i nacin da enkriptujem sifru i ucinim je necitljivom spolja. Pocetnik sam i svaka pomoc mi je dobrodosla.
Re: C#: app.config unos/citanje 22.05.2011. u 20:29 · pre 187 meseci #2
Ako ti je problem koristenje XML-a za cuvanje config vrijednosti, onda barem za pocetak koristi obicne txt fajlove. Mozes npr. da koristis delimiter u samom fajlu:

com5;
john;
********;
bleh;

A enkripciju mozes sam jednostavno da uradis. Imas mnogo nacina za to. Jednostaviji je da, konvertujes string u char, onda char u int, pa mozda da obavis neku operaiciju nad dobijenim intom (mozda da ga saberes sa 5). Kad si vrijednost enkriptovo, onda samo revers postupak i dekriptujes.

Manjak je da su ti sifre slabo zasticene (opet zavisi koju si mat. operaciju uraido na intom)
Prednost je da si ti to sam odradio :)

Na kraju krajeva, mozes iskoristiti i enkripciju koja se vec nalazi u *.NET.
Potpis

[IMG]http://img233.imageshack.us/img233/5078/thumbnailte1.th.jpg[/IMG]


They say I look like daddy :D
Re: C#: app.config unos/citanje 29.06.2011. u 12:07 · pre 186 meseci #3
Možeš da napraviš klasu koja predstavlja stanje tvoje aplikacije, npr:
Code:
[Serializable]
public class ApplicationState
{
    public string Foo { get; set; }
    public string Boo { get; set; }
}


Zatim na neki događaj (izlazak iz aplikacije ili neki button click) napuniš tu klasu sa nekim vrednostima i serijalizuješ je kao binarni fajl.
Kod učitavanja aplikacije samo deserijalizuješ taj objekat.

Na netu ima dosta primera za binarnu serilizaciju:
http://www.switchonthecode.com...al-serialize-objects-to-a-file

Na ovaj način osetljivi podaci nisu vidljivi i ne mogu da se promene izvan aplikacije.
(Zapravo mogu, ali prosečan korisnik sigurno neće znati kako ;) )
Potpis
gramatika srpskog jezika
testovi iz srpskog jezika
jezičke nedoumice
Re: C#: app.config unos/citanje 30.06.2011. u 20:49 · pre 186 meseci #4
hvala na odgovorima.

sredio sam jednostavno koristeci .txt (u resource-u) i .net enkripciju
Re: C#: app.config unos/citanje 02.07.2011. u 09:59 · pre 186 meseci #5
Upisivanje/menjanje app settings-a treba podeliti na one sa User i Application scope-om, ja sam koristio sledece metode, mozda nekom budu od pomoci:

za User scope:
Code:
        private static void SaveUserSettingDefault(string groupname,string clientSectionName, string settingName, object settingValue)
        {
            System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

            // find section group
            ConfigurationSectionGroup group = config.SectionGroups[@groupname];
            if (group == null) return;

            // find client section
            ClientSettingsSection clientSection = group.Sections[clientSectionName] as ClientSettingsSection;
            if (clientSection == null) return;

            // find setting element
            SettingElement settingElement = null;
            foreach (SettingElement s in clientSection.Settings)
            {
                if (s.Name == settingName)
                {
                    settingElement = s;
                    break;
                }
            }
            if (settingElement == null) return;

            // remove the current value
            clientSection.Settings.Remove(settingElement);

            // change the value
            settingElement.Value.ValueXml.InnerText = settingValue.ToString();

            // add the setting
            clientSection.Settings.Add(settingElement);

            // save changes
            config.Save(ConfigurationSaveMode.Full);
        }   


za Connection string, Application scope:
Code:
        private static void SaveConnectionString(string connstringname,string conectionstring)
        {
            // Get the application configuration file.
            System.Configuration.Configuration config =
            ConfigurationManager.OpenExeConfiguration(
            ConfigurationUserLevel.None);

            // Create a connection string element and
            // save it to the configuration file.

            // Create a connection string element.
            ConnectionStringSettings csSettings =
            new ConnectionStringSettings(connstringname, @conectionstring);

            // Get the connection strings section.
            ConnectionStringsSection csSection =
            config.ConnectionStrings;
            // Remove element.
            csSection.ConnectionStrings.Remove(csSettings);
            // Add the new element.
            csSection.ConnectionStrings.Add(csSettings);

            // Save the configuration file.
            config.Save(ConfigurationSaveMode.Modified);


        }
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme