私は比較的新しい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)フォームのコードビハインドでこのユーザー認証がすべて行われるか、またはユーザー認証を処理するsayValueUserという新しいクラスを作成してイベントから呼び出すと、ValidateUserがブール値? 私は、フォームの背後にあるコードに直接的な認証の詳細が発生してはいけないと感じるような気がしますか?
2)これに続いて、ユーザー名とパスワードを保持するコードビハインドフォームのプロパティを設定しました。検証ユーザークラスを作成する場合、これらのプロパティをこのクラスに含める必要がありますか?
3)このメソッドのNUNITテストでは、validatecredentialsメソッドから返されたブール値を単純にテストする必要があります。つまり、assert.equals(True、validatecredentailsobject(username、domain) - これらの行に沿ったもの)
NUnitのテスト可能である方法。
私は方法、その後、最初のNUnitのテストを書くアプリの残りの部分を開発したいと思います。
もしあなたが本当にうんざりしているのであれば、「ページングファイルに戻ったり、キーボードロガーで詮索したりすることができるユーザー名とパスワードを保存するのは良い考えですか?試して検証された安全なWindowsログイン以外の認証層を追加することは、本当に悪い考えです。 –