 |
|
สอบถามอยากทำหน้า login โดยหน้านี้สามารถเปิดจากผู้ได้รับสิทธิ์เท่านั้นครับต้องทำยังไงครับ |
|
 |
|
|
 |
 |
|
ผมนิงงตั้งแต่ ทำยังไงให้ผู้มีสิทธิ์เท่านั้นถึงจะเห็นช่องกรอก username กับ password ได้ครับ
แปลแบบบ้านๆ คือ พอเปิดโปรแกรมมา ให้ผู้มีสิทธิ์เท่านั้นถึงจะเห็นช่องกรอก username กับ password
แบบนี้รึป่าว
|
 |
 |
 |
 |
Date :
2016-09-15 11:29:45 |
By :
lamaka.tor |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ถ้าเรากำหนดตั้งแต่ตัวคอมพิวเตอร์เลยได้ไหมครับ ว่าเปิดจากคอมเครื่องนี้ จะเข้าหน้า login ไมได้อะไรแบบนี้ครับพอมีวิธีไหนไหมคับผม ขอบคุณอีกครั้งครับ
|
 |
 |
 |
 |
Date :
2016-09-15 11:31:04 |
By :
yatard |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
อ่านคำถามแล้ว งงๆ ครับ ใช่แบบนี้หรือเปล่า
คำถามคือต้องการให้คอมบางเครื่องเท่านั้นที่เปิดโปรแกรมนี้ได้ใช้หรือไม่ครับ
ถ้าคำถามหมายถึงแบบนี้ก็สามารถกำหนดได้โดยการใช้ HWID Lock ได้ครับ
เพราะคอมแต่ละเครื่องจะมีหมายเลข HWID อยู่และหมายเลขก็ไม่ซ้ำกันด้วย
อยากให้เปิดได้กี่เครื่องก็ใส่หมายเลข HWID ลงไปพอโปรแกรมมันจะตรวจสอบ
หมายเลขHWID เสร็จแล้วถ้าตรงก็ยอมให้เปิดแต่ถ้าไม่ก็มีข้อความแจ้งเตือน
ลองเข้า Google แล้วพิมพ์ vb.net hwid login system ลองดูครับตัวอย่างน่าจะเยอะอยู่
|
 |
 |
 |
 |
Date :
2016-09-15 11:50:10 |
By :
PEBBLE |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ที่ผมคิดคือ ทำหน้ารันหน้านึงโดยมีรหัสผ่าน ถ้าเครื่องนี้เปิดหน้านี้แล้วเข้ารหัสผ่านได้ ถึงจะอนุญาตเข้าใช้งานหน้า Login ของเว็บแบบนี้ครับแต่ผมไม่รู้จะเอาอะไรกำหนดได้ว่าให้คอมเครื่องนี้ได้สิทธ์หรือไม่ได้สิทธิ์ต้องฝังที่ส่วนใดของคอมพิวเตอร์หรือเก็บค่ายังไงดีครับ
|
 |
 |
 |
 |
Date :
2016-09-15 11:50:24 |
By :
yatard |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
วิธี HWID Lock อ่า ขอบคุณมากๆครับเดี่ยวผมจะลองดูครับ ขอบคุณอีกครั้งครับผม ขอบคุณทุกๆคนเลยครับ
|
 |
 |
 |
 |
Date :
2016-09-15 11:52:03 |
By :
yatard |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
แบบบ้านๆ
ทดสอบสร้างฟอร์มตามรูป

ถ้าหมายเลขเครื่องตรงกันให้แสดงข้อความและใช้ได้ปกติ

ถ้าหมายเลขเครื่องไม่ตรงให้แสดงข้อความ Error และปิดส่วนที่ LogIn

โค้ดใช้งาน
Code (VB.NET)
Imports System.Management
Imports System.Net
Public Class Form1
Private Function GETHWID() As String
Dim cpuInfo As String = String.Empty
Dim mc As New ManagementClass("win32_processor")
Dim moc As ManagementObjectCollection = mc.GetInstances()
For Each mo As ManagementObject In moc
If cpuInfo = "" Then
cpuInfo = mo.Properties("processorID").Value.ToString()
Exit For
End If
Next
GETHWID = cpuInfo
End Function
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Label1.Text = GETHWID()
Timer1.Enabled = True
End Sub
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
If Label1.Text = "BFEBFBFF0001067B" Then 'หมายเลขเครื่องที่ 1 ที่สามารถใช้งานได้
Timer1.Enabled = False
Label6.ForeColor = Color.Green
Label6.Text = "ยินดีต้อนรับ..กรุณากรอกชื่อและรหัสผ่านเพื่อเข้าใช้"
ElseIf Label1.Text = "ASDDDFERT15691VD" Then 'หมายเลขเครื่องที่ 2 ที่สามารถใช้งานได้
Timer1.Enabled = False
Label6.ForeColor = Color.Green
Label6.Text = "ยินดีต้อนรับ..กรุณากรอกชื่อและรหัสผ่านเพื่อเข้าใช้"
Else 'ถ้าหมายเลขเครื่องไม่ตรงตามที่ตั้งไว้ให้แสดงข้อความ Error และปิดส่วนที่ใช้งาน
Timer1.Enabled = False
TextBox1.Enabled = False
TextBox2.Enabled = False
Button1.Enabled = False
Label6.ForeColor = Color.Red
Label6.Text = "คอมพิวเตอร์เครื่องนี้ไม่ได้รับสิทธิ์ให้ใช้โปรแกรมนี้ !!"
End If
End Sub
End Class
|
 |
 |
 |
 |
Date :
2016-09-15 22:18:09 |
By :
PEBBLE |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
สุดยอด ขอบคุณครับผม
|
 |
 |
 |
 |
Date :
2016-09-16 08:17:26 |
By :
yatard |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
สอบถามเพิ่มเติมจากข้างบนครับ ผมลองทำตามแล้วครับ ผมอัพ code ขึ้น server แล้วลองเอาคอมเครื่องผมรันดูมันได้รหัส GETHWID() รหัสหนึ่งมาครับ แล้วผมลองไป เปิดกับคอมอีกเครื่องนึงรันหน้าเดียวกัน แต่กลับได้ code GETHWID() รหัสเดียวกันเลยครับ เดาว่าน่าจะเป็น GETHWID() ของ server ที่รัน code ครับแบบนี้ผมต้องแก้ไขตรงไหนได้บ้างครับ
|
 |
 |
 |
 |
Date :
2016-09-17 14:21:36 |
By :
yatard |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
สอบถามใช้ web application ใช้ browser รันผ่าน router ใช่ไหมครับ
ถ้าใช่ สมัยนี้ web browser อ่านข้อมูลของเครื่อง ผ่าน router ไม่ได้แล้วครับ
ุถ้าไม่ผ่าน router คือเป็นวงแลนเดียวกัน หรือ
ต้องใช้ win application ถึงจะอ่านข้อมูลของเครื่องได้
program ไม่จำเป็นต้องฉลาดมากหรอกครับ อยากให้เฉพาะเครื่อง เฉพาะคน
ก็ส่งอีกเมล รหัสผ่าน ผ่านทาง email ตรงๆ เลย ไม่ต้องมานั่งลงทะเบียนให้เหมื่อย
เมื่อคุณต้องลงทะเบียนเครื่องที่ใช้คุณต้องรู้รหัสเครื่อง สู้ให้เขากรอกรหัสโดยเฉพาะดีกว่าไหมครับ
และใช้ cookie จำข้อมูลเฉพาะนั้น + user password จะรันที่ไหนก็ได้ สดวกกว่ากันตั้งเยอะ
|
ประวัติการแก้ไข 2016-09-17 14:44:16
 |
 |
 |
 |
Date :
2016-09-17 14:36:02 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณครับพี่ Chaidhanan
|
 |
 |
 |
 |
Date :
2016-09-17 14:44:06 |
By :
yatard |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
gethwid() มันได้ hwid ของ router ครับ ไม่ได้ของ เครื่องที่ใช้งาน
|
 |
 |
 |
 |
Date :
2016-09-17 14:47:21 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ไม่รู้ว่ามีวิธีจะยืนยันตัวตนของเครื่องคอมเครื่องนั้นๆได้บ้างไหมครับหรือต้องใช้ win app เข้ามาช่วยครับ
|
 |
 |
 |
 |
Date :
2016-09-17 15:33:24 |
By :
yatard |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
การยืนยัน หมายเลขเครื่อง mac address ต้องใช้ win app ครับ
มันจำเป็นขนาดต้องใช้ หมายเลขเครื่องเลยเหรอครับ
การใช้หมายเลยเครื่องส่วนใหญ่ที่ผมเจอมา เขาจะใช้เฉพาะกับ win app ที่เป็นระบบปิด
ซึ่งผู้ใช้ยินยอมให้เข้าถึงระบบความปลอดภัยของเครื่องได้
|
 |
 |
 |
 |
Date :
2016-09-17 16:31:05 |
By :
Chaidhanan |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ลองอีกแบบ...ลองไปเรื่อยๆ 
แบบที่ 1 get the harddrive serial number หรือหมายเลขพวก ฮาร์ดดีส นั้นเอง คิดว่าฮาร์ดดิส แต่ละลูกหมายเลขไม่น่าจะซ้ำกัน

Code (VB.NET)
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Label1.Text = GetDriveSerialNumber()
End Sub
Public Function GetDriveSerialNumber() As String
Dim DriveSerial As Integer
'Create a FileSystemObject object
Dim fso As Object = CreateObject("Scripting.FileSystemObject")
Dim Drv As Object = fso.GetDrive(fso.GetDriveName(Application.StartupPath))
With Drv
If .IsReady Then
DriveSerial = .SerialNumber
Else '"Drive Not Ready!"
DriveSerial = -1
End If
End With
Return DriveSerial.ToString("X2")
End Function
End Class
----------------------------------------------------------------------------------------------------------
หรือแบบที่ 2 HWID ที่เอา Processor Id [Cpu] + VolumeSerial Id [Hdd] + MotherBoard Id [Mb] + MACAddress [mac]
ถ้ามันยังซ้ำกันอยู่ก็ไม่รู้จะว่ายังไงแล้ว

Code (VB.NET)
Imports System.Management
Imports System
Imports System.Text
Imports System.Security.Cryptography
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim hw As New clsComputerInfo
Dim hdd As String
Dim cpu As String
Dim mb As String
Dim mac As String
cpu = hw.GetProcessorId()
hdd = hw.GetVolumeSerial("C")
mb = hw.GetMotherBoardID()
mac = hw.GetMACAddress()
'MsgBox(cpu & " " & hdd & " " & mb & " " & mac)
Dim hwid As String = Strings.UCase(hw.getMD5Hash(cpu & hdd & mb & mac))
' MessageBox.Show(Strings.UCase(hwid))
Label1.Text = hwid
End Sub
End Class
Public Class clsComputerInfo
Friend Function GetProcessorId() As String
Dim strProcessorId As String = String.Empty
Dim query As New SelectQuery("Win32_processor")
Dim search As New ManagementObjectSearcher(query)
Dim info As ManagementObject
For Each info In search.Get()
strProcessorId = info("processorId").ToString()
Next
Return strProcessorId
End Function
Friend Function GetMACAddress() As String
Dim mc As ManagementClass = New ManagementClass("Win32_NetworkAdapterConfiguration")
Dim moc As ManagementObjectCollection = mc.GetInstances()
Dim MACAddress As String = String.Empty
For Each mo As ManagementObject In moc
If (MACAddress.Equals(String.Empty)) Then
If CBool(mo("IPEnabled")) Then MACAddress = mo("MacAddress").ToString()
mo.Dispose()
End If
MACAddress = MACAddress.Replace(":", String.Empty)
Next
Return MACAddress
End Function
Friend Function GetVolumeSerial(Optional ByVal strDriveLetter As String = "C") As String
Dim disk As ManagementObject = New ManagementObject(String.Format("win32_logicaldisk.deviceid=""{0}:""", strDriveLetter))
disk.Get()
Return disk("VolumeSerialNumber").ToString()
End Function
Friend Function GetMotherBoardID() As String
Dim strMotherBoardID As String = String.Empty
Dim query As New SelectQuery("Win32_BaseBoard")
Dim search As New ManagementObjectSearcher(query)
Dim info As ManagementObject
For Each info In search.Get()
strMotherBoardID = info("SerialNumber").ToString()
Next
Return strMotherBoardID
End Function
Friend Function getMD5Hash(ByVal strToHash As String) As String
Dim md5Obj As New Security.Cryptography.MD5CryptoServiceProvider
Dim bytesToHash() As Byte = System.Text.Encoding.ASCII.GetBytes(strToHash)
bytesToHash = md5Obj.ComputeHash(bytesToHash)
Dim strResult As String = ""
For Each b As Byte In bytesToHash
strResult += b.ToString("x2")
Next
Return strResult
End Function
End Class
---------------------------------------------------------------------
ปล.ผิดพลาดตรงไหนขออภัยไว้ ณ ที่นี้ด้วยน่ะครับ
|
 |
 |
 |
 |
Date :
2016-09-18 20:14:18 |
By :
PEBBLE |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณสำหรับข้อมูลครับ
|
 |
 |
 |
 |
Date :
2016-09-19 14:48:10 |
By :
yatard |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
จะใช้ mac address หรือ serail harddisk หรือ guid ของ โปรแกรม ก็ได้ครับ ลองดู
|
 |
 |
 |
 |
Date :
2016-09-22 04:31:21 |
By :
bigsuntat |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|