Logowanie i zapis aktualnego stanu formy

0

Wyobraźmy sobie , że mam prosty panel logowania. Loguje się : login - aaaa, hasło bbb.
Moja forma ma 5 checkboxów , które po prostu sobie są , nic nie robią, można je tylko zaznaczać.
Niech checkboxy mają nazwy : ch1 , ch2, ch3 , ch4, ch5
Zaznaczam sobie ch1, ch2 , ch3, wylogowuję się z programu. Jaką funkcję mogę wykrzystać, by stan mojej formy był zapisywany w zależności od zalogowanego użytkownika? Bo wyobraźmy sobie usera xxxx , który zaznaczy jednego checkboxa i po ponownym zalogowaniu powinien widzieć tylko jednego checkboxa. Z góry dzięki za wskazówki, pomoce itd. Pozdrowionka

0

W bazie danych, w plikach, w plikach konfiguracyjnych. Przechowywać nazwę użytkownika i te dane w odniesieniu do danego usera.

1

Jak nie chcesz bazy danych to możesz serializować ustawienia do plików XML o nazwach w zależności od np. loginu użytkownika.

Używasz takich oto namespace'ów:

using System.Xml.Serialization;
using System.IO;

Tworzysz klasę do serializacji. Musi być z dostępem publicznym:

[Serializable]
public class Dane {
	public string Login { get; set; }
	public bool CzyZaznaczony { get; set; }
	// etc...
}

Później zapisujesz dane normalnie do pliku XML serializując dane:

var daneLogowania = new Dane();

// Załóżmy, że obiekt `daneLogowania` jest wypełniony danymi.
var serializer = new XmlSerializer(typeof(Dane));
var strumien = new StringWriter();
serializer.Serialize(strumien, dane);
File.WriteAllText(dane.Login + ".cfg", strumien.ToString());

I masz :) Możesz tak zapisywać nawet całe kolekcje danych wstawiając powiedzmy:

typeof(List<Dane>)

Deserializujesz używając StringReader'a i metody Deserialize klasy XmlSerializer, która zwróci Ci obiekt klasy object. Wystarczy do skonwertować na cokolwiek co spodziewasz się, że masz w typeof().
Baaaardzo przydatna metoda i niezależna od typów danych przechowywanych w klasie do serializacji (no... prawie niezależna). Po deserializacji masz gotowy obiekt wypełniony danymi ze wskazanego pliku. Nie musisz martwić się o parsowanie czy wymyślanie formatu zapisu danych etc... Idealna rzecz do przechowywania konfiguracji. Jak chcesz jakieś hasełka mieć to możesz je zaszyfrować dodatkowo i szlus :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1