C# .NET - Integrate finger printer to asp.net - Asked By Dom Afonso on 27-Jun-12 05:04 PM

Earn up to 50 extra points for answering this tough question.
How to add finger printer functionality in asp.net and wpf?
S K replied to Dom Afonso on 27-Jun-12 11:55 PM
You need to use third party biomatric tool to scan finger print in you .net application
See here is code sample with complete sample project
http://www.codeproject.com/Articles/38881/Fingerprint-Reader-Integration-using-the-M2SYS-SDK 
Also this is useful for you
http://www.devdirect.com/aspnet/Biometrics_PCAT_1999.aspx 

hope this helps you
Jitendra Faye replied to Dom Afonso on 28-Jun-12 12:17 AM

http://www.eggheadcafe.com/community/aspnet/14/10329959/biometric-technology.aspx

Fingerprint recognition is an active research area nowadays. An important component in fingerprint recognition systems is the fingerprint matching algorithm. According to the problem domain, fingerprint matching algorithms are classified in two categories: fingerprint verification algorithms and fingerprint identification algorithms.

The aim of fingerprint verification algorithms is to determine whether two fingerprints come from the same finger or not. On the other hand, the fingerprint identification algorithms search a query fingerprint in a database looking for the fingerprints coming from the same finger.

Follow this link -

http://www.codeproject.com/KB/library/MatchingFramework.aspx

Hope this will help you.

 

RAJASEKHAR RAJENDRAN replied to Dom Afonso on 28-Jun-12 01:10 AM
Hi Dom,

I Hope that you have an Finger print and Scanner in hand.
IF so you no need to store any print Id to the database, because the scanner stores all the thing in its memory and the scanner just returns an id for the user.

So the thing what you are required to do is as follows

  • Create the application which gets the finger print events.
  • from those events get the id of the user which will match that in the database and from the application you can able to apply the logic required.
  •  The above can be done using the Windows Application which will be easier to manage the users.
  • So in your ASP, when a new one is created, by using the windows application you can be able to provide the id to the asp, so that we can add the finger print with the same id to the user, which will be easier for the implementation.

Thanks & Regards,
Rajasekhar.R
bharti odedra replied to Dom Afonso on 28-Jun-12 09:28 AM
Try this

This article presents a first look at the M2SYS Bio-PlugIn fingerprint identification Software Development Kit. This SDK gives independent software vendors a relatively straight-forward and robust way of integrating biometric fingerprint recognition into custom applications. A test application is presented, which exercises relevant functions from the SDK. You will need to obtain the M2SYS Bio-Plugin SDK to be able to compile and run the sample code. 

Client Verification

Once the BioPlugin Client software is installed and activated, you can verify its basic functionality manually by following these steps:

  1. Open Command Prompt window (Start -> Run -> "cmd").
  2. Change to where BioPlugin Client was installed (“cd \Program Files\BioPlugin”).
  3. Manually call the Single-Finger Scanning window “m2sysplugin.exe IS 0”.
  4. The fingerprint scanning window will appear in the center of the screen.
  5. Touch your finger to the fingerprint reader’s scanning surface.
  6. At the top of the dialog, you will see the message "Fingerprint processed". This indicates that client is communicating with the server.
    • If a "Server connection failed" or "Invalid server name" message is displayed, confirm:
      • The BioPlugin Server software is running properly by checking the server log file


Detection of the M2Sys Client Software

private const string BiopluginNameInRegistry = "BioPlugInActX Control";
private const string BioPluginKey = @"CLSID\{05E8280C-D45A-494F-AE42-840A40444AFF}";

private static bool IsM2SysBioPluginInstalled()
{
    RegistryKey bioPluginRegistryKey;
    const string bioPluginKeyName = BioPluginKey;

    try
    {
        bioPluginRegistryKey = Registry.ClassesRoot.OpenSubKey(bioPluginKeyName, false);
    }
    catch
    {
        return false;
    }
    if (bioPluginRegistryKey == null)
        return false;
    string name = (string)bioPluginRegistryKey.GetValue(string.Empty);
    if (name == BiopluginNameInRegistry)
        return true;
    return false;
}

The above code is inserted at the start up of your application as shown here:

[STAThread]
private static void Main()
{
    Application.EnableVisualStyles();
    Application.SetCompatibleTextRenderingDefault(false);
    if (!IsM2SysBioPluginInstalled())
    {
        MessageBox.Show(Resources.ProgramNeedsM2Sys, Resources.MessageBoxTitle,
                        MessageBoxButtons.OK, MessageBoxIcon.Error);
        return;
    }
    Application.Run(new FingerTestForm());
}

  1. Client calls to enrol, by using bioPlugin.RegisterPrintShort(name).
  2. BioPlugIn ActiveX control displays a modal dialog to register the print.
  3. User scans in fingerprints.
  4. Control sends scans to the server.
  5. Server saves scans in database.
  6. Control fires the OnRegister event back to the client application.
  7. Client application makes a callback to the ActiveX control to retrieve the result property.

The application code below shows how we can make the asynchronous events look synchronous in the application.

// a synchronization primitive that helps with the 
// waiting associated with asynchronous calls
private readonly ManualResetEvent _eventRecievedInfo = new ManualResetEvent(true);

// this is the event handler for the button press
// we pass the equivalent of a function pointer to the DoFingerPrintAction call
private void _registerShortButton_Click(object sender, EventArgs e)
{
    DoFingerPrintAction(()=>_fpReader.RegisterPrintShort(_enterIdText.Text), 
					ResultCode.RegisterPrintShort);
}

private void DoFingerPrintAction(Action action, ResultCode resultCode)
{
    _currentResult = resultCode;
    _eventRecievedInfo.Reset();
    action();         // this is where the call to the ActiveX is made
    WaitForInfo();    // we wait for a response here
}

private void WaitForInfo()
{
    for (int i = 0; i < 60; i++)  // maximum wait = 60 seconds
    {
        // this needs to be called for the Windows Message pump
        // to work, and for the events to come in.
        Application.DoEvents();      
        bool gotSignal = _eventRecievedInfo.WaitOne(1000);
        if (gotSignal)
        {
            return;
        }
    }
}

// This is the event handler for the OnRegister Event
// on the bioPlugin control
private void bioPlugin_OnRegister(object sender, EventArgs e)
{
    string fromAxControl = bioPlugin.result;

    switch (_currentResult)
    {
        case ResultCode.RegisterPrintShort:
            _returnCodeFromRegistration = fromAxControl;
            break;
        case ResultCode.UpdatePrint:
            _returnCodeFromRegistration = fromAxControl;
            break;
    }
    _eventRecievedInfo.Set();
}
bharti odedra replied to Dom Afonso on 28-Jun-12 09:30 AM
try this step
  • Create the application which gets the finger print events.
  • from those events get the id of the user which will match that in the database and from the application you can able to apply the logic required.
  •  The above can be done using the Windows Application which will be easier to manage the users.
  • So in your ASP, when a new one is created, by using the windows application you can be able to provide the id to the asp, so that we can add the finger print with the same id to the user, which will be easier for the implementation.