打印本文 打印本文 关闭窗口 关闭窗口
使用VB.Net做一个配置web.config功能的WinForm(原创)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数2859  更新时间:2009/4/23 19:01:15  文章录入:mintao  责任编辑:mintao
alue)
??????????????????????? If el.Attributes("key").InnerXml = "WindowsAuthentication" Then _
?????????????????????????? Me.cbWindowsAuthentication.Checked = Convert.ToBoolean(el.Attributes("value").Value)
??????????????????? Next
??????????????? End If

??????????? End If
??????? Next

??? End Sub

??? ''''**********************************************************************************************
??? ''''** Class:????????? GetDatabases
??? ''''**
??? ''''** Description:???
??? ''''**********************************************************************************************
??? Private Sub GetDatabases()

??????? Try

??????????? Dim oDatabase As New Database
??????????? cboDatabase.BeginUpdate()
??????????? Cursor.Current = Cursors.WaitCursor

??????????? Configuration.Server = txtServerName.Text
??????????? Configuration.Database = "master" ''''cboDatabase.Text
??????????? Configuration.Password = txtPassword.Text
??????????? Configuration.UserName = txtUserName.Text
??????????? Configuration.WindowsAuthentication = cbWindowsAuthentication.Checked


??????????? Dim rd As SqlClient.SqlDataReader
??????????? rd = oDatabase.GetDatabases
??????????? While rd.Read()
??????????????? cboDatabase.Items.Add(rd.GetString(1))
??????????? End While
??????????? rd.Close()
??????????? cboDatabase.Sorted = True


??????? Catch AComException As System.Runtime.InteropServices.COMException

??????????? cboDatabase.DataSource = Nothing
??????????? cboDatabase.Items.Clear()
??????????? cboDatabase.Text = ""

??????????? MsgBox("Could not connect to " & txtServerName.Text & ".", MsgBoxStyle.Exclamation, _
??????????????? "SQL Connection Error")
??????? Catch e1 As Exception
??????????? MsgBox(e1.Message)

??????? Finally

??????????? cboDatabase.EndUpdate()
??????????? Cursor.Current = Cursors.Default

??????? End Try

??? End Sub

??? Private Sub btnOk_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOk.Click
??????? Dim xmlDoc As XmlDocument
??????? Dim topM As XmlNodeList
??????? xmlDoc = New XmlDocument
??????? xmlDoc.Load("Web.config")
??????? topM = xmlDoc.DocumentElement.ChildNodes
??????? For Each element As XmlElement In topM
??????????? If element.Name.ToLower() = "appsettings" Then
??????????????? Dim _node As XmlNodeList = element.ChildNodes
??????????????? If _node.Count > 0 Then
??????????????????? For Each el As XmlElement In _node
??????????????????????? If el.Attributes("key").InnerXml = "ServerName" Then _
?????????????????????????? el.Attributes("value").Value = txtServerName.Text
??????????????????????? If el.Attributes("key").InnerXml = "DataBaseName" Then _
?????????????????????????? el.Attributes("value").Value = cboDatabase.Text
??????????????????????? If el.Attributes("key").InnerXml = "UserName" Then _
?????????????????????????? el.Attributes("value").Value = SecurityService.SymmetricEncrypt(txtUserName.Text)
??????????????????????? If el.Attributes("key").InnerXml = "Password" Then _
?????????????????????????? el.Attributes("value").Value = SecurityService.SymmetricEncrypt(txtPassword.Text)
??????????????????????? If el.Attributes("key").InnerXml = "WindowsAuthentication" Then _
????????????????????????? el.Attributes("value").Value = Me.cbWindowsAuthentication.Checked.ToString()
??????????????????? Next
??????????????? End If

??????????? End If
??????? Next

??????? '''' Write XML to file
??????? xmlDoc.Save("Web.config")
??????? Me.Close()

??? End Sub

??? Private Sub cbWindowsAuthentication_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbWindowsAuthentication.CheckedChanged

??????? If cbWindowsAuthentication.Checked Then
??????????? txtUserName.Text = ""
??????????? txtPassword.Text = ""
??????????? txtUserName.Enabled = False
??????????? txtPassword.Enabled = False
??????? Else
??????????? txtUserName.Enabled = True
??????????? txtPassword.Enabled = True
??????? End If

??????? Configuration.WindowsAuthentication = cbWindowsAuthentication.Checked
??? End Sub

??? Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
??????? If MsgBox("Are you sure you want to exit w/o configuring the database?", MsgBoxStyle.OKCancel) = MsgBoxResult.OK Then
??????????? Me.Close()
??????? End If
??? End Sub
??? Private Sub txtPassword_LostFocus(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtPassword.LostFocus
??????? If cbWindowsAuthentication.Checked Or (txtUserName.Text <> "" And txtPassword.Text <> "") Then
??????????? GetDatabases()
??????? End If
??? End Sub
End Class

SecurityService类是用来加/解密的,这样用户就无法直接从Web.config中看到数据库用户和密码了。

上一页  [1] [2] 

打印本文 打印本文 关闭窗口 关闭窗口