Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
ログインフォーム
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30326#CommentId83256
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
魔界の仮面弁士
 (社会人)
投稿日時
2018/5/24 02:57:35
> 今回はしないということで進めさせてください。
今後の課題ということですね。一応指摘してみたというだけで、特に強制するというものではありません。
(標準の MembershipProvider でも、平文モード/暗号化モード/ハッシュモードが選択できますし)
> 参考を元にわかる範囲で作ってみたのですがどうでしょうか?
概要としてはそれで良いと思いますが、以下、細かい点について。
> Dim Flag As String = 0
代入式の左辺と右辺の型が一致していませんね。
実際の SQL Server 側の権限列の型にもよりますが、
Dim Flag As String = "0"
あるいは
Dim Flag As Integer = 0
などではありませんか?
> Dim cn = New SqlConnection(cnstr)
参考にされた元コードは、実行後即座に終了するコンソールアプリでしたが
今回は実行後もアプリが動き続ける Windows Forms アプリなので、
Connection / Command / DataReader に関しては、
Using ブロックで囲った方が良いかも知れません。
> While rd.Read() ' 1 行読み込み
> Pass = ※取得したもの
> Flag = ※取得したもの
> End While
ここは While ループである必要は無いですね。
ID が主キーとなる場合、抽出結果は 1 件または 0 件なので、
ループで繰り返し取得する必要は無く、If で十分なはずです。
If rd.Read() Then
Pass = rd.GetString("Password")
Flag = rd.GetString("権限")
Else
'該当者がいない場合の処理
End If
> If Password.Text = Pass Then
> MessageBox.Show("ユーザー名とパスワードを受け付けました。")
> Me.Close()
> Else
これだと、OK ボタンを押さずに、画面右上の×で閉じた場合にも
認証処理が通過してしまうのではありませんか?