funkcja contains i zwracana wartość

Odpowiedz Nowy wątek
2015-01-24 13:42
0

Witam mam pytanie bo chce żeby funkcja moja zwracała wartość false jeżeli bedzie zawarty cały podciag a zwraca wartośc true nawet jezeli jest jedna litera. Juz dokładnie pokazuje o co mi chodzi:

        public static bool CheckDataReg(string sciezkaLokalna, string nazwaPliku, string login, string mail)
        {
            string line;
            StreamReader file = new StreamReader(sciezkaLokalna + "\\" + nazwaPliku);
            while ((line = file.ReadLine()) != null)
            {
                if (line.Contains("#LOGIN:" + login))
                {
                    file.Close();
                    MessageBox.Show("Podany Login jest zajęty");
                    return false;
                }
                else if(line.Contains("#MAIL:"+mail))
                {
                    file.Close();
                    MessageBox.Show("Podany mail jest zajęty");
                    return false;
                }

            }
            MessageBox.Show("Wszystkie dane prawidłowe zostaniesz zarejestrowany");
            file.Close();
            return true;
        } 

załózmy ze jest w pliku już uzytkownik o loginie baca1616, i nawet jak wpisze b i wywołam ta funkcje sprawdzająca to contains i tak zwraca mi wartosc true. Ktoś wie jak mogę to obejść ?

Jeszcze dopisze, że plik wygląda tak:
#LOGIN:baca1616#PASS:qwerty123#MAIL:[email protected]

edytowany 1x, ostatnio: baca1616, 2015-01-24 13:47

Pozostało 580 znaków

2015-01-24 13:46

No pomyślmy... nie używaj Contains tylko sprawdzaj zgodność całej linii case-insensitive? :|


Chyba case-sensitive, skoro tam są hasła? :P - dam1an 2015-01-24 14:10
Ja tam widzę tylko login oraz mail w poście ;p - Patryk27 2015-01-24 14:20
A no nie zauważyłem że mu o rejestracje chodzi. - dam1an 2015-01-24 14:44

Pozostało 580 znaków

2015-01-24 14:07
1

Zrób coś takiego:

string[] data = line.Split("#");
if(data[0] == "LOGIN:"+login && data[1] == "PASS:"+pass)
 return true;

A tak btw nie powinieneś przechowywać haseł zwykłym tekstem.

edytowany 1x, ostatnio: dam1an, 2015-01-24 14:11

Pozostało 580 znaków

2015-01-24 14:35
0

plik jest na koncu szyfrowany i ogolnie. Na potrzeby projektu mi plik txt starczy, zresztą to pierwsze spotkanie z C#, a tablice data u Ciebie musialem zrobić

data[1] == "LOGIN:"+login && data[3]=="MAIL:"+mail 

dzięki wielkie za pomoc :)

edytowany 1x, ostatnio: baca1616, 2015-01-24 14:43

Pozostało 580 znaków

2015-01-24 14:36
0

Szyfrowanie jest nic nie warte, skoro hasło i tak siedzi plaintextem, a nie jest hashowane :P


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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