2015-01-13 3 views
0

Я создал регистрационную форму и форму для входа. Оба работают отлично. Но как я узнаю, что пользователь зарегистрировался как PHP, используя SESSIONS и COOKIES. Я могу использовать static class для получения данных между разными страницами, но как я могу получить зарегистрированные данные пользователя, если он закрывает приложение.Признать пользователя уже зарегистрированного C# WPF

Есть ли способ достичь этого?

Спасибо!

ответ

0

Я предполагаю, что вы хотите что-то вроде приложений для обмена мгновенными сообщениями, таких как Skype или облачных приложений хранения данных, таких как DropBox, OneDrive или Mega. Они просят вас ввести имя пользователя и пароль один раз, а затем начать автоматически, не запрашивая учетные данные пользователя снова.

Они достигают этого, сохраняя имя пользователя и пароль в зашифрованном формате в файле, который они обычно хранят в папке приложения под определенной учетной записью пользователя. Дополнительную информацию см. В следующей ссылке: How can I get the current user directory?

Это стандартная практика, так как другой пользователь не будет автоматически включен в ваше приложение, если они не ввели свои собственные учетные данные.

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

+0

спасибо за хорошую стратегию –

+0

Если вы действительно хотите это сделать, используйте настройки пользователя, чтобы сделать это. Это избавит вас от необходимости управлять файлом самостоятельно. –

+0

Да, в C#, который будет правильным. Тем не менее, необходимо соблюдать осторожность с объемом и структурой сохраненной информации. Файлы Config имеют тенденцию становиться уродливыми, когда кто-то ленится с созданием соответствующих разделов и просто сбрасывает пары ключ-значение. – zmechanic

0

Для этого вы должны использовать пользовательские настройки, так как этот механизм скрывает всю необходимую работу для создания файлов в правильных местах и ​​т. Д. От разработчика. Он отлично работает, и он создан для таких вещей.

Вы создаете их в Visual Studio в свойствах проекта на вкладке «Настройки». Не забудьте правильно выбрать тип настроек, так как параметры приложения доступны только для чтения.

Предположим, у вас есть настройки UserName и UserPassword. Затем, в вашем коде, вы можете сделать это:

if (String.IsNullOrWhitespace(Properties.Settings.Default.UserName)) 
{ 
    // USER NEEDS TO LOG IN 
    string userName; 
    string password; 

    if (Login(out userName, out password)) 
    { 
     try 
     { 
      Properties.Settings.Default.UserName = Encrypt(userName); 
      Properties.Settings.Default.Password = Encrypt(password); 
      Properties.Settings.Default.Save(); 
     } 
     catch (Exception exp) 
     { 
      ... 
     } 
    } 
} 
else 
{ 
    // USER IS ALREADY LOGGED IN 
} 

private bool Login(out string userName, out string password) будет метод, который показывает пользовательский интерфейс Логин и возвращает true на успех или false на провал.

private string Encrypt(string input) будет методом шифрования строки.

Смежные вопросы