SqlConnectionオブジェクトに子フォームを入力し、子フォームを表示し、SqlConnectionオブジェクトを確立し、入力したオブジェクトを親フォームに戻して実行を続行するという設計習慣があります。.NET2.0以降は次のように0になります。
親フォーム:
public SqlConnection sqlcon; //should be property but made it public for this example
public MainForm_Load(object sender, EventArgs e)
{
Login frm = new Login(this);
frm.ShowDialog();
if (this.sqlcon == null)
{ //no login
this.Close();
}
//else, continue execution
}
ログインフォーム:
Mainform parent;
public Login(RandomParade frm)
{
InitializeComponent();
parent = frm;
}
private void btnOK_Click(object sender, EventArgs e)
{
//code to capture login details from textboxes
//test connection
parent.sqlcon = new SqlConnection("connection string with login details here");
this.Close();
}
これは単一の実行可能ファイルにコンパイルされるため(dllアクセス修飾子は個別に扱われるなど...)、sqlConnectionオブジェクトを公開することでセキュリティリスクが発生しますか?誰かが実行時に情報を取得できますか?ログイン情報を「メイン」フォームに渡すためのより良い実装は何でしょうか?