Я относительно новичок в C # и пытаюсь создать приложение, которое начинается с простой аутентификации пользователя до запуска моего основного окна приложения.
На данный момент у меня есть форма входа с просьбой указать домен и пароль пользователя.
Затем я использую класс Principalcontext для аутентификации деталей.
Вот код, который вызывается при нажатии кнопки в форме входа в систему (после ввода имени и пароля)
private void validatelogin(object sender, RoutedEventArgs e)
{
password = passwordBoxICCLogin.Password.ToString();
username = tbUserName.Text.ToString();
using (PrincipalContext pc = new PrincipalContext(ContextType.Domain, "xxx"))
{
bool isValid = pc.ValidateCredentials(_username, _password);
if (isValid)
{
DevLauncher launch = new DevLauncher();
launch.Show();
this.Close();
}
else
{
MessageBox.Show("Invalid ID \ Password combination entered");
}
}
}
Это, вероятно, покажется базовым для опытных среди вас, но я хотел бы реализовать разумный, аккуратный дизайн, и если я правильно понял, это хорошая основа для остальной части приложения.
1) Должна ли вся эта аутентификация пользователя происходить в коде, лежащем в основе формы, или я должен создать новый класс, называемый скажем ValidateUser, который обрабатывает аутентификацию пользователя, и вызывает ее из события, когда ValidateUser возвращает логическое значение ?
У меня есть ноющее чувство, что детали аутентификации не должны появляться непосредственно в коде формы для формы?
2) Исходя из этого, я установил свойства в коде формы для хранения имени пользователя и пароля. Если я создаю валидный пользовательский класс, должны ли эти свойства содержаться в этом классе?
3) Если мой тест NUNIT для этого метода просто протестирует логическое значение, возвращенное методом validatecredentials. т.е. assert.equals (True, validatecredentailsobject (имя пользователя, домен) - или что-то в этом роде?
Опять же, это не совсем правильно. В поисках руководства о том, как можно улучшить общий дизайн, и о написании метода, который можно тестировать в NUNIT.
Я бы хотел разработать оставшуюся часть приложения, написав сначала тест nunit, а затем метод.