Попытка прочитать двоичный файл, чтобы связаться с пользователем на моем сайте - PullRequest
0 голосов
/ 01 ноября 2019

Я уже мог писать и читать из файла bin с моим приложением C # (webforms). После внесения некоторых изменений я все еще могу писать, но не могу прочитать более одного пользователя.

Я использовал отладчик. Цикл foreach насчитывает только 1 пользователя из Serialization.Users, хотя в этом файле 2 пользователя. Это статический список. Это работало раньше. Я не могу понять, что я сделал неправильно.

        ``` 
        format = new BinaryFormatter();
        Users = new List<User>();

        try
        {
            flux = new FileStream(path, FileMode.Open, FileAccess.Read);
        }
        catch
        { 
            Users.Add(new User("root", "root123", "email@abc.com", "Administrator"));
            Users.Add(new User("user", "user123", "email@abc.com", "User"));
            Save(path);
        }
        finally
        {
            Users = (List<User>)format.Deserialize(flux);
            if (flux != null)
               flux.Close();
        } 

        foreach (User account in Serialization.Users)
        {
            if (account.Username == username.Text && account.Password == password.Text)
            return true;
        }
        return false;
        ```

Я должен быть в состоянии войти со вторым пользователем, но, как я упоминал, цикл foreach останавливается после 1 итерации и возвращает false. Я не понимаю почему.

1 Ответ

0 голосов
/ 01 ноября 2019

Я обнаружил, что что-то пошло не так в моем коде.

Проблема была не в том, что я попытался / поймал, а когда новый пользователь создал свою учетную запись. После правильного входа в систему и возврата на домашнюю страницу путем отключения, Page_Load () больше не читает мой двоичный файл, потому что я забыл десериализовать там.

...