1

私が持っているこのフレームワークが、VB 2008 のグリッドビューのテーブルにすべてのユーザーとその役割を表示する正しい方法であるかどうかを知るのに苦労しています。コードビハインドが正しいことを確認する必要があるだけです。ユーザーのログインとパスワードを含む最初のページがあり、正しい情報が入力されていることを許可された1つのボタンは、データベースにアクセスし、すべてのユーザーとそのロールのテーブルをグリッドビューで生成する次のページにつながります。

コードを見て、これが正しい考えかどうか教えてください。

Dim mySqlConnection As SqlConnection

mySqlConnection = New SqlConnection("Data Source=(local)\SQLExpress;" _
+"Password=myPassword; " _
    +"Persist Security Info=True;" _
    +"User ID=mcobery;" _
    +"Initial Catalog=model;")

Try
    mySqlConnection.Open()
    Console.WriteLine("Opened Connection to {0}",_
        mySqlConnection.ConnectionString)

' Close the connection explicitly
mySqlConnection.Close()
Console.WriteLine("Closed Connection. " _
    +"It is important to close connections explicitly.")

Catch
    Console.WriteLine("Couldn't Open Connection to {0}", _ 
        mySqlConnection.ConnectionString)

End Try

ご覧のとおり、これは正しいユーザー名とパスワードを入力するフレームワークです。

これが正しいコード ビハインドかどうか教えてください。

4

1 に答える 1

1

ここからどこから始めればよいかわかりません。

初めにすること

Using myConnection as new SqlConnection(someConnectionString)
  myConnection.Open()
  ...

End Using

myConnection が範囲外になると、閉じられますが、実際には接続プールに戻ります。あなたはそれについて読む必要があります。

GC が整理してくれますが、基本的な原則として、例外が発生した場合に接続を閉じるものは何でしょうか? あなたはコメントでそれが非常に重要だと言いました。

接続を作成し、何かを行い、それを閉じて、範囲外になるのに、なぜセキュリティ情報を保持しているのですか?

パスワードをコードに入れないでください。それらは設定にあるはずです。実際、すべての接続文字列が必要です。これは、ステージング環境でテストする場合にも役立ちます。または、システム担当者が SQL Server と IIS が別のマシン上にあると言った場合。

ところで、なぜ SQL Server セキュリティを使用しているのですか?

これをどのように単体テストしますか?

あなたよりもはるかに経験豊富な人がたくさんいて、これらよりも悪い間違いを犯しています. 私があなたなら、ベスト プラクティスの本を手に取るでしょう。もう少し学習するまで、その一部は頭を悩ませますが、すべきこととすべきでないことを理解してください。

于 2013-02-22T02:33:58.823 に答える