[Project] An extensible (plugin based) windows service that performs actions for NFC events
-
The service is supposed to go into a suspend state as soon as it gets a "OnSessionChange" message from the OS. The whole time it's locked, the service should be essentially not doing anything, but still set as "Running".
In the "NFCRingServiceHost.exe.config" file is an isDebug setting near the bottom of the file. Set that to "True" and then lock the pc for 5 mins. Attach the log.txt file here if the service stopped. At the moment it just logs what events it got and startup / shutdown signals so theres no private data in it (human readable if you want to check it out). That'll be able to tell me what is going on.
Thanks
Maz -
@Lokki
Also, I just left mine locked for about 3 hours while i was out and it was still running when I came back. So we'll have to troubleshoot for cause (i cant immediately replicate it). -
I saw it happen this time - I don't use a screen saver or anything but the screen blinked black. Then no login.
16-02-17 17:49:05 Core starting
16-02-17 17:49:05 Core started
16-02-17 17:49:05 NFC Reading started
16-02-17 17:49:05 Plugins loading
16-02-17 17:49:05 Plugins loaded
16-02-17 17:49:05 Service started
16-02-17 17:49:10 Session state changed: SessionLock
16-02-17 17:49:10 Core stopping
16-02-17 17:49:10 NFC Reading stopped
16-02-17 17:49:10 Core stopped
16-02-17 17:49:10 Workstation Locked
16-02-17 17:54:51 Session state changed: SessionUnlock
16-02-17 17:54:51 Workstation unlocking or logging on
16-02-17 17:54:53 Core starting
16-02-17 17:54:53 Core started -
Package updated. Now with even more logging.
Also, I tested it on win 7 and 10 tonight so I can confirm it works on everything since win7 and its just specific configurations that have problems that I need to look at. -
Apologies to anyone who is in the process of updating, I just remembered that I needed to handle bad data from a card reader better than just crashing the whole system. So I've just added update 6.
-
Okay. Update 7 is the last for the night. Could other users with windows 10 please test and see if the credential provider / unlock part fails if the machine is left locked for 5 minutes. I need to find out if it is specific hardware that is causing it or windows 10 in general.
Thanks.
Maz -
Random question. Does anyone actually need a 32-bit version?
I just had a quick look and I don't think there is any reason it can't be made except that I don't have a single 32-bit machine anywhere (not even among friends and family) so I'm not sure its worth any effort.
Maz -
There'll be someone out there who is stuck running 32 bit. I have a 32 bit win10 machine here for testing.
-
I am alive. I made it to the USA and i have my nfc reader with me. Unfortunately, I don't have a PC yet but I can continue development using my laptop (and windows 7).
If people could use the issue tracker on https://github.com/mclear/Sesame that'd give my work a bit more direction.
Thanks
Maz -
Welcome to the US Maz! We hope you settle in well!
-
I was just tinkering and found a neat feature. Because my credential provider talks to the service, I can have it suspend the services normal functions when a credential window is active. Which means I can use my ring to log into remote servers etc. its just a matter of getting the name of the server from the context of the credential provider (im sure its there somewhere. otherwise it sends my usual username and password).
Anyway. just thought that was cool.
Maz -
@maz_net_au haha yeah that is awesome!! Video coming soon? :p
-
I'm in Japan again for a while. Hopefully today I can go and source some tiny NFC reader from Akihabara and then continue working on it this weekend (its a long weekend in Japan). I'll definitely post a video when i've made some more progress. I'll also update the github. But now that I've got this idea, I'm going to move the credential provider part of the service as a main part, rather than as a plugin so that it makes more sense to use this so suspend plugin processing (so that swiping a ring with an RDP credential prompt up doesnt lock your local machine instead of passing the login). Otherwise i'd have to make a more complex rules engine for processing plugins
i.e. you'd "activate" a plugin to run "only when the machine is logged in" and set the order that they ran and also make one be able to stop processing all of the others. and this might have to be registered on a "per ring" basis.
so
check ring
-> get list of plugins
-> get machine state (locked, unlocked, awaiting credential)
-> run plugins in order
-> check plugin result, and stop processing plugins if requiredIts all doable. I'll work on it and post an update when i've made a decision for how I want to do things.