Now all of the project landing pages for the Samples 2009 group on CodePlex have nice “inline” screenshots. That way, if you’re looking for reusable XAML, you know what you can get from these projects. Here are the five project URLs:
We started principal development on the Bio Approval Workflow project (see here and here), and I realized that I could make people’s lives easier by simpifying the fingerprint authentication demo code I checked into Codeplex a couple of weeks ago.
What was originally present was a (native) helper dll that required the caller to use three different functions (Initialize, Identify, and Uninitialize), as well as provide a callback, just to do one thing: perform a fingerprint scan and, if successful, determine whether it maps to the currently logged-on user.
That probably sounds harder than it is – see the Codeplex link above to check out the code. Anyway, now that we started writing the real application code, which I knew was going to be all C#, it occurred to me that I could make things much easier in the native code helper dll. Specifically:
- Provide a new helper export that does the initialize, identify, and uninitialize for you.
- Make it synchronous, so it doesn’t require the callback. While I’m hoping that the synchronous approach won’t be a problem for WPF (e.g., disrupt UI threads like in Win32), even if it does, it’s easy to spin up a separate managed thread to work around that.
- Write a P/Invoke helper class for accessing that export from managed code, as well as a managed console application for testing it.
That whole procedure took me less than an hour, since I was already familiar with the underlying code, as well as the new biometric interfaces. If I’d instead waited for the application developer to slog through that – or worse, having him write and test a P/Invoke wrapper for the original asynchronous model – it would have taken much longer. Lesson learned.
Check out the upcoming Tech Days 24-hour virtual event, sponsored by Microsoft. It’s a one-day marathon of technology presentations and demos, all via LiveMeeting (i.e., online). And it’s free! Should be interesting.
I submitted a demo proposal for our Biometrics Approval Workflow project, although I think I may have missed the deadline. We’ll see …
Check out the upcoming Tech Days 24-hour virtual event, sponsored by Microsoft. It’s a one-day marathon of technology presentations and demos, all via LiveMeeting (i.e., online). And it’s free! Should be interesting.I submitted a demo proposal for our Biometrics Approval Workflow project, although I think I may have missed the deadline. We’ll see …
Just confirmed – the UPEK Eikon fingerprint reader that I ordered from Amazon arrived within a couple of days, and it’s a snap to complete a new fingerprint enrollment and do a biometric logon to Win 7 (latest Beta, 64-bit even!) with it.
Thus, we’ll be using these devices for this project.
I’ve been using an AuthenTec AES2810 USB fingerprint reader for my proof of concept development for this project so far, as I’ve blogged previously. However, although I found both their hardware and software to be high-quality, even on the Windows 7 Beta, I haven’t been able to find a reliable-sounding reseller. The issue is that I only have the one device, and we’re going to need more as we ramp up dev and test.
Instead, I learned that UPEK makes USB fingerprint readers that both (a) support Windows 7, and (b) are readily available retail, in this case via Amazon. The link to their drivers is here, including the note that all of their Eikon line (which is what’s available from Amazon) is supported in this scenario. Haven’t tested them yet; they’re due today or tomorrow. Will post an update.
The CodePlex site has been created, and initial demo code uploaded, for the Bio Approval Workflow (aka Secure Purchase Order System, or SPOS) sample. See here.
The current code implements a native Win32 command-line tool that calls the Windows 7 Biometric Service API. Specifically, WinBioIdentifyWithCallback and related routines. Kudos to the Microsoft Windows Security product group folks for making the ramp-up relatively painless.
A few specific notes about that ramp-up. First, don’t forget to install the latest Windows 7 SDK and DDK. Confusingly, you need the DDK even for the basic client-side user-mode components (including winbio.h and winbio.lib). Technically, I’m not even sure that you need the Win 7 SDK for this, but the current sample assumes that it’s there.
Second, for reference, I previously blogged about the fingerprint reader being used for testing. No problems.
Third, as I mentioned in the above post, my current Win 7 test machine is 64-bit. I briefly forgot that fact, and tried running a 32-bit version of the above command-line sample. It threw a WOW exception and failed to run. I see a copy of winbio.dll in %SystemRoot%\SysWOW64, so I’m not sure why it failed, and I made no attempt to debug. Anyway, we’ll be sure that all of our samples build and run natively on 64-bit, so this should be an edge case at best.
Fourth, the current plan is to constrain the SPOS target scenarios to AD domain-based user accounts only. Thus, the sample code has only been tested in that scenario.