Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 939
  • Last Modified:

How to get the Client Hard Disk No Using C#

Hello,

i need to validate the client using his hard disk number. So how to get the Client hard disk number using c# language.

thanks in advance
sen007
0
sen007
Asked:
sen007
  • 5
  • 3
  • 2
  • +1
1 Solution
 
AerosSagaCommented:
Public Declare Function GetVolumeSerialNumber Lib "kernel32" Alias "GetVolumeInformationA" (ByVal

lpRootPathName As String, ByVal lpVolumeNameBuffer As Long, ByVal nVolumeNameSize As Long,

lpVolumeSerialNumber As Long, ByVal lpMaximumComponentLength As Long, ByVal lpFileSystemFlags As

Long, ByVal lpFileSystemNameBuffer As Long, ByVal nFileSystemNameSize As Long) As Long

Public Function VolumeSerial(DriveLetter) As Long
    Dim Serial As Long
    Call GetVolumeSerialNumber(UCase(DriveLetter) & ":\", 0&, 0&, Serial, 0&, 0&, 0&, 0&)
    VolumeSerial = Serial
End Function

 
Example Usage

MsgBox VolumeSerial("C")

I am currently trying to convert this to C# for you

Regards,

Aeros
0
 
AerosSagaCommented:
Heres the function part:

public long VolumeSerial(object DriveLetter)
{
 long Serial;
 GetVolumeSerialNumber(UCase(DriveLetter) + ":\", 0, 0, Serial, 0, 0, 0, 0);
 VolumeSerial = Serial;
}
0
 
AerosSagaCommented:
Heres the rest of it:

public class abcd
{
[System.Runtime.InteropServices.DllImport("kernel32", EntryPoint="GetVolumeInformationA")]
public long GetVolumeSerialNumber(string lpRootPathName, long lpVolumeNameBuffer, long nVolumeNameSize, long lpVolumeSerialNumber, long lpMaximumComponentLength, long lpFileSystemFlags, long lpFileSystemNameBuffer, long nFileSystemNameSize);
0
Concerto's Cloud Advisory Services

Want to avoid the missteps to gaining all the benefits of the cloud? Learn more about the different assessment options from our Cloud Advisory team.

 
raterusCommented:
I don't see how that will get you the "client" hard-disk number, maybe the servers...  Getting anything like that of the client would be off limits from an asp.net application.
0
 
AerosSagaCommented:
I don't believe that will be possible, as it is a security risk

0
 
raterusCommented:
yeah, I think that is what the author is after.  To do it using your code, he'll probably have to embed a client-side control in IE.

http://msdn.microsoft.com/msdnmag/issues/02/01/UserCtrl/default.aspx
0
 
AerosSagaCommented:
wasn't aware of the safe initizlization for activeX

http://msdn.microsoft.com/workshop/components/activex/safety.asp
0
 
raterusCommented:
Here is probably a better way to authenticate clients if you are interested, all the stuff Aeros and I were talking about is fairly bloated if you are dealing with real clients.  (I sure wouldn't want to download a program to access their website..who knows what "else" they are looking at)

http://support.microsoft.com/default.aspx?scid=kb;EN-US;315588
0
 
crescendoCommented:
Just hang around your local high school and ask a spotty teenager which exploit to use...
0
 
crescendoCommented:
No offence intended to Aerosaga, who's worked hard on this one, but his solution doesn't actually solve the problem as it gives the server's disk serial number, not the client's.
0
 
moduloCommented:
PAQed, with points refunded (70)

modulo
Community Support Moderator
0

Featured Post

Independent Software Vendors: We Want Your Opinion

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 5
  • 3
  • 2
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now