ASP.NET 2.0 AJAX Guide with Visual Studio 2005 by RidDick. บทที่ 1
July 30, 2008เริ่มต้นกับ ASP.NET 2.0 AJAX
1. ดาวน์โหลด ASP.NET AJAX Extensions 1.0 ที่ http://www.asp.net/ajax/downloads/
2. ติดตั้ง ASP.NET AJAX Extensions 1.0
ขั้นตอนการติดตั้งคงไม่ต้องอธิบายอะไรมากมายนะครับ ไม่มีอะไรยากเกินกว่าที่เราจะทำได้อยู่แล้ว
3. ทดสอบการใช้งาน ASP.NET 2.0 AJAX
3.1 สร้าง Web Site Project ใหม่ โดยเลือก ASP.NET AJAX-Enabled Web Site
3.2 นำ Control มาวางดังภาพ
3.3 เพิ่มคำสั่งใน Button1_Click
3.4 ทดสอบการทำงานของ Web Page
เมื่อคลิกที่ Button แล้วสามารถทำงานก็ถือว่าการทดสอบ AJAX เสร็จสมบูรณ์แล้วครับ
วิธีการแก้ปัญหาเมื่อ Login ไม่ได้
July 30, 20081. กำหนดสิทธิโฟลเดอร์ App_Data ให้สามารถเขียนได้
2. ปิด VS2005+IE+Service(IIS,Sql Express,www) ลบไฟล์ใน F:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files
3. ลองทดสอบดูอีกครั้ง หากยังไม่ได้ ลองหาวิธีอื่น
Class สำหรับติดต่อฐานข้อมูล MS Access Files
July 28, 2008Imports System.Data
Imports System.Data.OleDb
Public Class ClassAccess
Public Strcon As String
Dim PV As String = “Provider=Microsoft.Jet.OLEDB.4.0;”
Dim m_DBPath As String = “C:\Inetpub\wwwroot\CarManagement\App_Data\DB.mdb”
Dim m_Password As String = “passwordmdb”
Dim m_Identity As Integer
Public ReadOnly Property Identity() As Integer
Get
Return m_Identity
End Get
End Property
Public Sub New()
If Dir(m_DBPath) = “” Then
Err.Raise(60001, , “Database File : ” & m_DBPath & ” Database not found”)
Exit Sub
End If
Strcon = PV & “data source=” & m_DBPath & “;Jet OLEDB:Database Password=” & m_Password
End Sub
Public Function GetDataset(ByVal Strsql As String, _
Optional ByVal DatasetName As String = “Dataset1″, _
Optional ByVal TableName As String = “Table1″) As DataSet
Dim DA As New OleDbDataAdapter(Strsql, Strcon)
Dim DS As New DataSet(DatasetName)
Try
DA.Fill(DS, TableName)
Catch x1 As Exception
Err.Raise(60002, , x1.Message)
End Try
Return DS
End Function
Public Function GetDataTable(ByVal Strsql As String, _
Optional ByVal TableName As String = “Table1″) As DataTable
Dim DA As New OleDbDataAdapter(Strsql, Strcon)
Dim DT As New DataTable(TableName)
Try
DA.Fill(DT)
Catch x1 As Exception
Err.Raise(60002, , x1.Message)
End Try
Return DT
End Function
Public Function CreateCommand(ByVal Strsql As String) As OleDbCommand
Dim cmd As New OleDbCommand(Strsql)
Return cmd
End Function
Public Function Execute(ByVal Strsql As String, Optional ByVal IdentityCheck As Boolean = False) As Integer
Dim cmd As New OleDbCommand(Strsql)
Dim X As Integer = Me.Execute(cmd, IdentityCheck)
Return X
Return Strsql
End Function
Public Function Execute(ByRef Cmd As OleDbCommand, Optional ByVal IdentityCheck As Boolean = False) As Integer
Dim Cn As New OleDbConnection(Strcon)
Cmd.Connection = Cn
Dim X As Integer
Try
Cn.Open()
m_Identity = 0
X = Cmd.ExecuteNonQuery()
If IdentityCheck = True Then
Dim cmd3 As New OleDbCommand(“select @@identity”, Cn)
m_Identity = cmd3.ExecuteScalar
End If
Catch
X = -1
Finally
Cn.Close()
End Try
Return X
End Function
Public Sub CreateParam(ByRef Cmd As OleDbCommand, ByVal StrType As String)
‘T:Text, M:Memo, Y:Currency, D:Datetime, I:Integer, S:Single, B:Boolean
Dim i As Integer
Dim j As String
For i = 1 To Len(StrType)
j = UCase(Mid(StrType, i, 1))
Dim P1 As New OleDbParameter()
P1.ParameterName = “@P” & i
Select Case j
Case “T”
P1.OleDbType = OleDbType.VarChar
Case “M”
P1.OleDbType = OleDbType.LongVarChar
Case “Y”
P1.OleDbType = OleDbType.Currency
Case “D”
P1.OleDbType = OleDbType.Date
Case “I”
P1.OleDbType = OleDbType.Integer
Case “S”
P1.OleDbType = OleDbType.Decimal
Case “B”
P1.OleDbType = OleDbType.Boolean
End Select
Cmd.Parameters.Add(P1)
Next
End Sub
End Class
Class สำหรับติดต่อฐานข้อมูล Sql Database Files
July 28, 2008Imports System.Data.SqlClient
Imports System.Data
Public Class SQLCONN
Dim PV As String = “data source=.\SQLEXPRESS;”
Dim m_Database As String = “|DataDirectory|database.mdf;”
Public Strcon As String
Dim m_Identity As Integer
Public ReadOnly Property Identity() As Integer
Get
Return m_Identity
End Get
End Property
Public Sub New()
Strcon = PV & “Integrated Security=SSPI;AttachDBFilename=” & m_Database & “User Instance=true”
End Sub
Public Function GetDataset(ByVal Strsql As String, _
Optional ByVal DatasetName As String = “Dataset1″, _
Optional ByVal TableName As String = “Table”) As DataSet
Dim DA As New SqlDataAdapter(Strsql, Strcon)
Dim DS As New DataSet(DatasetName)
Try
DA.Fill(DS, TableName)
Catch x1 As Exception
Err.Raise(60002, , x1.Message)
End Try
Return DS
End Function
Public Function GetDataTable(ByVal Strsql As String, _
Optional ByVal TableName As String = “Table”) As DataTable
Dim DA As New SqlDataAdapter(Strsql, Strcon)
Dim DT As New DataTable(TableName)
Try
DA.Fill(DT)
Catch x1 As Exception
Err.Raise(60002, , x1.Message)
End Try
Return DT
End Function
Public Function CreateCommand(ByVal Strsql As String) As SqlCommand
Dim cmd As New SqlCommand(Strsql)
Return cmd
End Function
Public Function Execute(ByVal Strsql As String, Optional ByVal IdentityCheck As Boolean = False) As Integer
Dim cmd As New SqlCommand(Strsql)
Dim X As Integer = Me.Execute(cmd, IdentityCheck)
Return X
End Function
Public Function Execute(ByRef Cmd As SqlCommand, Optional ByVal IdentityCheck As Boolean = False) As Integer
Dim Cn As New SqlConnection(Strcon)
Cmd.Connection = Cn
Dim X As Integer
Try
Cn.Open()
X = Cmd.ExecuteNonQuery()
If IdentityCheck = True Then
Dim cmd3 As New SqlCommand(“select @@identity”, Cn)
m_Identity = cmd3.ExecuteScalar
End If
Catch
X = -1
Finally
Cn.Close()
End Try
Return X
End Function
Public Sub CreateParam(ByRef Cmd As SqlCommand, ByVal StrType As String)
‘T:Text, M:Memo, Y:Currency, D:Datetime, I:Integer, S:Single, B:Boolean, P: Picture
Dim i As Integer
Dim j As String
For i = 1 To Len(StrType)
j = UCase(Mid(StrType, i, 1))
Dim P1 As New SqlParameter
P1.ParameterName = “@P” & i
Select Case j
Case “T”
P1.SqlDbType = SqlDbType.VarChar
Case “M”
P1.SqlDbType = SqlDbType.Text
Case “Y”
P1.SqlDbType = SqlDbType.Money
Case “D”
P1.SqlDbType = SqlDbType.DateTime
Case “I”
P1.SqlDbType = SqlDbType.Int
Case “S”
P1.SqlDbType = SqlDbType.Decimal
Case “B”
P1.SqlDbType = SqlDbType.Bit
Case “P”
P1.SqlDbType = SqlDbType.Image
End Select
Cmd.Parameters.Add(P1)
Next
End Sub
End Class
10 เทคนิคการรักษาความปลอดภัยข้อมูลคอมพิวเตอร์อย่างง่ายด้วยตนเอง
May 29, 200810 เทคนิคการรักษาความปลอดภัยข้อมูลคอมพิวเตอร์อย่างง่ายด้วยตนเอง
เราต้องยอมรับว่าทุกวันนี้การดำเนินชีวิตประจำวันของคนไทยมีความเกี่ยวพันกับระบบสารสนเทศและระบบอินเทอร์เน็ตอยู่ตลอดเวลาไม่ว่าจะเป็น การใช้โทรศัพท์มือถือ, การค้นหาข้อมูลในระบบอินเทอร์เน็ตจากเว็บไซต์ต่างๆ, การใช้อิเล็กทรอนิกส์เมล์ในการติดต่อสื่อสารกันระหว่างเพื่อนฝูง ญาติมิตร และใช้ในการติดต่องานระหว่างองค์กรทั้งภาครัฐและเอกชน สิ่งที่ตามมาก็คือสถิติอาชญากรรมคอมพิวเตอร์ที่มีการใช้งานอินเทอร์เน็ตเป็นสื่อกลางในการติดต่อก็มีสถิติเพิ่มขึ้นเป็นเงาตามตัวเช่นกัน
ข้อมูล 10 อันดับภัยอินเทอร์เน็ตล่าสุดประจำปี พ.ศ. 2551 จากงานอบรมการป้องกันความปลอดภัยข้อมูลคอมพิวเตอร์ครั้งที่ 7 (CDIC2007) ภัยอินเทอร์เน็ตได้มีการเปลี่ยนแปลงปรับปรุงรูปแบบวิธีการโดยการใช้เทคนิคใหม่ๆ ในการโจมตีเป้าหมาย ซึ่งเป้าหมายหลักของเหล่าแฮกเกอร์กลับไม่ใช่ระบบคอมพิวเตอร์ที่เราใช้อยู่แต่เป็นตัวบุคคลเองที่กลายเป็นเป้าหมายหลักในการโจมตีด้วยวิธีการยอดนิยมที่เรียกว่า “Social Engineering” หรือ การใช้หลักจิตวิทยาในการหลอกล่อเหยื่อให้หลงเชื่อในข้อความหลอกลวงผ่านทางเว็บไซต์หรือ อิเล็กทรอนิกส์เมล์ ดังนั้น การให้ความรู้แก่ผู้ใช้งานคอมพิวเตอร์ทั่วไปสำหรับองค์กรที่เรียกว่า “Information Security Awareness Program” นั้นถือเป็นเรื่อง “สำคัญอย่างยิ่งยวด” ดังนั้นผมจึงขอนำเสนอ 10 เทคนิคการรักษาความปลอดภัยข้อมูลคอมพิวเตอร์อย่างง่ายด้วยตนเอง เพื่อเป็นภูมิคุ้มกันในการป้องกันเบื้องต้นไว้ดังนี้ครับ
1. สำหรับผู้ใช้ Windows XP หรือ Windows Vista ควรรีบติดตั้ง Service Pack ล่าสุดอยู่เสมอ
การติดตั้ง Service Pack ล่าสุดนั้นสามารถช่วยปิดช่องโหว่ต่าง ๆ ที่มีอยู่ได้อย่างมีประสิทธิผล ทำให้เครื่องของเรารอดพ้นจากภัยอินเทอร์เน็ตในหลากหลายรูปแบบได้ในระดับหนึ่ง ดังนั้นเราควรติดตั้ง Service Pack ล่าสุด ทันทีที่มีโอกาส แนะนำว่า ควรติดตั้ง Service Pack จากแผ่น CD-ROM ของ Microsoft โดยตรงจะดีที่สุดเพราทั้งสมบูรณ์ และ ปลอดภัย แต่ถ้าไม่มี CD-ROM ก็ให้ download ได้ที่ http://download.microsoft.com
2. ควรติดตั้ง Patch หลังจากติดตั้ง Windows XP หรือ Windows Vista แบบอัตโนมัติ และ Update Virus and Mal Ware Signature แบบอัตโนมัติเช่นกัน
โดยการตั้งค่าใน Security Setting ที่ Control Panel ให้เป็น “Automatic Update” แต่ถ้าเราปิดเครื่องไว้เป็นเวลาหลายวัน ให้รีบเข้าไป download ที่ www.windowsupdate.com ทันทีที่เราเปิดเครื่อง เพราะ “Window Update” อาจช้ากว่าการที่เราเข้าไป download ด้วยตัวเองที่ www.windowsupdate.com เนื่องจาก Microsoft จะออก Patch ทุกวันอังคารที่ 2 ของเดือนแล้วก็อย่าลืม Update Signature ให้กับโปรแกรม ANTI-VIRUS และ ANTI-SPYWARE แบบอัตโนมัติด้วย เพื่อให้โปรแกรมรู้จัก VIRUS และ SPYWARE ใหม่ ๆ ที่เกิดขึ้นด้วย
3. ระวัง Attached File นามสกุลแปลก ๆ รวมทั้ง ZIP File ที่อาจเป็นพาหะของไวรัสคอมพิวเตอร์
ให้ตรวจเช็คนามสกุลของ Attached File ก่อนว่าเป็นนามสกุลไฟล์ ที่อาจก่อให้เกิดอันตรายกับเครื่องคอมพิวเตอร์ของเราหรือไม่ ซึ่งผมได้รวบรวมมาให้แล้ว ดังนี้ ADB, ADP, BAS, BAT, CHM, CMD, COM, CPL, CRT, EXE, HLP, HTA, INF, INS, ISP, JS, JSE, LNK, MDB, MDE, MSC, MSI, MSP, MST, PCD, PIF, REG, SCR, SCT, SHS, URL, VB, VBE, VBS, WSC, WSF และ WSH สำหรับไฟล์นามสกุล .ZIP หรือ .RAR ที่เราใช้กันโดยทั่วไปนั้น ไวรัสคอมพิวเตอร์ส่วนใหญ่นิยมใช้เป็นพาหะในการส่งตัวไวรัสเข้ามาทาง Attached File วิธีการสังเกตคือ ให้ดู Email Subject ว่าดูแปลก ๆ หรือไม่ แม้ Email นั้นจะมาจากชื่อของคนที่เรารู้จักดีก็ตาม เครื่องของเขาอาจติดไวรัสไปแล้วหรืออาจเป็นการปลอม Email จากแฮกเกอร์ก็เป็นได้ เราควรหมั่นอ่านข่าวไวรัสตัวใหม่ ๆ เพื่อให้เกิดความรู้ความเข้าใจเทคนิคของไวรัส
4. ตั้งค่าให้ Windows XP แสดงนามสกุลของไฟล์
ไวรัสคอมพิวเตอร์บางตัว อาจหลอกผู้ใช้คอมพิวเตอร์ให้เกิดความเข้าใจผิดเห็นไฟล์อันตรายเป็นไฟล์ปกติได้ โดยการหลอกที่นามสกุลของไฟล์ เช่น Picture1.jpg.exe เราอาจเข้าใจว่าเป็นไฟล์นามสกุล .JPG แต่แท้จริงแล้วเป็นไฟล์นามสกุล .EXE แต่เนื่องจาก โดยปกติแล้ว Windows จะไม่แสดงนามสกุลของไฟล์ ดังนั้นเราอาจเผลอเปิดไฟล์เหล่านี้โดยไม่ระวังก็เป็นได้ เราจึงควรกำหนดให้ Windows แสดงนามสกุลของไฟล์ เพื่อให้เราสามารถสังเกตนามสกุลของไฟล์ได้อย่างชัดเจนขึ้น โดยตั้งค่า Windows Explorer ที่เมนู Tools -> Folder Options -> View ให้ Clear Check Box “Hide extensions for known file types” ก็เป็นอันเรียบร้อยแล้วครับ
5. ตั้งค่าใน Outlook ให้จัดการกับ SPAM Mail และอ่าน Email ในลักษณะเป็นข้อความ (Text Format)
เราสามารถตั้งค่าในโปรแกรม Outlook ให้จัดการกับ Junk Mail หรือ Spam Mail ได้ เพื่อลดปัญหา Spam และ เพื่อเป็นการป้องกัน Malicious Code ที่อาจมากับ Email Body ในรูปของ Link ที่ซ่อนมากับไฟล์รูปภาพ เราควรตั้งค่าให้ Email ถูกแสดงเป็น Text Format โดยเข้าไปที่เมนู Tools -> Options -> Preference -> E-mail -> E-mail Options เลือก “Read all standard mail in plain text” จากนั้นให้เราคอยสังเกตว่า Email Body มีการ Link ไปยัง Web ที่แปลก ๆ หรือไม่ ถ้าสังเกตพบก็อย่า Click Link เหล่านั้น และ ให้ลบ E-mail นั้นไปเลยจะปลอดภัยที่สุด
6. ระวังไฟล์ที่ download จาก Instant Messenger (IM) เช่น MSN หรือ ICQ และ การ SPAM ผ่าน IM ที่เรียกว่า SPIM (SPAM IM)
การใช้ IM หรือ Instant Messenger นั้นมีข้อดีในการโต้ตอบแบบทันใจ (Real Time) โดยเฉพาะสำหรับคนชอบ “Chat” แต่ปัญหาก็คือ บางครั้งคู่สนทนาของเรามีการส่งไฟล์บางอย่างมาให้เราด้วย ซึ่งบางทีก็อาจจะไม่ใช่ไฟล์ที่ถูก Upload มาจากคู่สนทนาของเราโดยตรง แต่กลับมาจากไวรัสคอมพิวเตอร์ที่ทำงานอยู่บนเครื่องของคู่สนทนาเราที่ติดไวรัสแล้ว ดังนั้น เราควรระวังไฟล์ที่มากับ IM เป็นพิเศษ อาจจะใช้วิธีโทรเช็คก่อน แต่ทางที่ดีไม่ควรจะ download ไฟล์ผ่านทาง IM จะดีที่สุดครับ
7. ระวังการตกเบ็ด (Phishing Link) จากข้อความใน Email หรือ URL Link จากข้อความทาง Instant Massaging บางครั้งผู้ไม่หวังดีหรือแฮกเกอร์มักจะส่ง Email มาหลอกผู้ใช้บริการอินเทอร์เน็ตแบงก์กิ้ง หรือ บริการออนไลน์ต่าง ๆ ว่า Account ของผู้ใช้กำลังมีปัญหาต้องรีบ “Logon” เข้าไปใน Web Site เพื่อ ยืนยัน “Username” และ “Password” เมื่อเราหลงกลทำการคลิก Link ที่อยู่ใน Email หรือใน Instant Messaging แล้ว Link นั้นก็จะพาเข้าไปใน Web Site ที่ได้ทำหลอกไว้ซึ่งอาจมีหน้าตาเหมือนกับ Web Site ของจริงทุกประการเลยก็ว่าได้ ซึ่งเมื่อเราทำการ “Logon” จึงเท่ากับว่าเราไปบอก Username และ Password ให้กับผู้ไม่หวังดี ซึ่งท่านก็คงพอเดาได้ว่าจะเกิดความเสียหายอะไรตามมาบ้าง ดังนั้น จึงเป็นเรื่องจำเป็นที่เราควรระมัดระวังในการคลิก Link ต่าง ๆ
8. ระวัง Malicious Cookies จาก Web Site บาง Site ที่เราเข้าไปเยี่ยมชม การรับ Cookies File เข้ามาเก็บในเครื่องของเรานั้น บางครั้งอาจทำให้เกิดช่องโหว่ให้กับระบบและทำให้เราถูกติดตามพฤติกรรมในการใช้งานอินเทอร์เน็ตโดยไม่รู้ตัว (Internet Tracking) ดังนั้น เราควรตั้งค่าให้ IE Browser ถามเราก่อนว่า เราต้องการรับ Cookies หรือไม่ เพื่อที่จะไม่ต้องตกเป็นเหยื่อของเหล่า Spy Ware และผู้ไม่หวังดีที่จ้องขโมยข้อมูลส่วนตัวของเรา วิธีการตั้งค่าให้เรียก IE Browser แล้วไปที่เมนู Tools -> Internet Options -> Privacy -> Advanced -> Cookies -> เลือก Prompt
9. อย่ารับ ActiveX Control โดยไม่จำเป็น เราควรตั้งค่าใน IE Browser ให้ปลอดภัยจากการรับ ActiveX Control โดยไปที่เมนู Tools -> Internet Options -> Security -> Custom Level -> เลือก Reset to High แล้ว Click Reset -> Yes -> OK หลังจากนั้น IE Browser ของเราจะปลอดภัยมาก ขึ้น แต่จะมีข้อความขึ้นมาถามเราเป็นระยะ ๆ ซึ่งอาจก่อให้เกิดความรำคาญบ้าง เราคงต้องทนกับ POP-UP ที่ถามเราอยู่เรื่อย ๆ แต่ก็เป็นการแลกกับความปลอดภัยที่เพิ่มขึ้นให้กับเครื่องคอมพิวเตอร์ของเรา
10. ตรวจสอบการเรียกโปรแกรมมุ่งร้าย (Mal Ware) ที่ทำงานโดยอัตโนมัติ หลังจากการเปิดเครื่อง
เราสามารถตรวจสอบโปรแกรมมุ่งร้าย (Mal Ware) บางโปรแกรมที่เรียกตัวเองโดยอัตโนมัติซึ่งส่วนใหญ่แล้ว เป็นโปรแกรมประเภท ไวรัส หรือ สปายแวร์ โดยการไปที่เมนู Start -> Run -> เรียกโปรแกรม “msconfig” จากนั้นไปที่เมนู Startup ก็จะเห็นรายการโปรแกรมที่ถูกเรียกขึ้นมาทำงานโดยอัตโนมัติ หลังจากการเปิดเครื่อง ซึ่งเราสามารถจะ Enable หรือ Disable ได้ โดยการเลือก Clear Check Box ข้างหน้า
กล่าวโดยสรุปได้ว่า เราควรทำตาม 10 เทคนิคดังที่ได้กล่าวมาแล้วทั้ง 10 เทคนิค จะช่วยให้เครื่องของเราปลอดภัยจากภัยอินเทอร์เน็ต ตลอดจนช่วยองค์กรไม่ให้ตกเป็นเป้าหมายของการโจมตีจากโปรแกรมมุ่งร้ายต่าง ๆ (แต่อย่าลืมว่าเพียงแค่ระดับหนึ่งเท่านั้นนะครับ)
ตัวอย่างการติดต่อฐานข้อมูล MS Access
February 20, 2008ตัวอย่างการติดต่อฐานข้อมูล MS Access โดยใช้ Dataset
<%Import Namespace=”System.Data”%>
<%Import Namespace=”System.Data.OleDb”%>
<html>
<body>
<script language=”VB” runat = “server”>
Sub Page_Load(Sender As Object, E As EventArgs)
Dim Conn As new OleDbConnection (“Provider=Microsoft.Jet.OLEDB.4.0 ; Data Source=f:\inetpub\wwwroot\a.mdb”)
Dim Mydatasql As New OleDbDataAdapter(“Select * from member”,Conn)
Dim ds As new Dataset()
Mydatasql.Fill(ds,”Detail1″)
Name1.Datasource=ds.Tables(“Detail1″)
Name1.Databind()
End Sub
</script>
<asp:Datagrid id=”Name1″ runat = “server”/>
</body>
</html>
ตัวอย่างการติดต่อฐานข้อมูล MS Access โดยใช้ Datareader
<%Import Namespace=”System.Data”%>
<%Import Namespace=”System.Data.OleDb”%>
<html>
<body>
<script language=”VB” runat = “server”>
Sub Page_Load(Sender As Object, E As EventArgs)
Dim Conn As new OleDbConnection (“Provider=Microsoft.Jet.OLEDB.4.0 ; Data Source=” & Server.MapPath(“\a.mdb”))
Dim MydataSource=Mydatasql As new OleDbCommand(“Select * From Member”,Conn)
Name1.DataSource=Mydatasql.ExecuteReader()
Name1.Databind()
Conn.Close()
End Sub
</script>
<asp:Datagrid id=”Name1″ runat = “server”/>
</body>
</html>
การแยกประโยคคำสั่ง
February 1, 2008
|
|
Posted by แซมริด
Posted by แซมริด
Posted by แซมริด 

