As the question says, I have a desktop application targeting windows OS. The system provide the users with 2 ways to access the application, they have to type their username and password and then the application will authenticate them either by checking their cards (Which containing their password and user name) or by accessing the DB.

I am wondering what is the best way to provide this feature, should we let the user type his information and then the system do all the works i.e check if the card is inserted, if not go to check if there is internet, if not, the system ask the user to insert card or fix the internet? OR should we let the user to choose if he want to login using CARD or INTERNET ? (I do not prefer this option because I think it puts extra work that user dose not have to concern about it)


First this point must be said, My application will be running on PCs that will not be always able to connect to the internet because of the region of the users who will use this application. So the requirement of this application says: the users must be authenticated even if there is no internet connection. The solution is: provide each user a card that stores their Info. (It contains exactly the same row of the user in DB table). So now we can check if the entered username and password is correct by checking the Card . I hope this clarify my question?

Could you please give me any tips for doing this?

  • why should they type there username and password since they have a card which is, I guess, personal ? I am not sure I understand the process. May 3, 2013 at 9:47
  • I flow chart might help. May 3, 2013 at 9:49
  • I have just update My Q.
    – hum.
    May 3, 2013 at 10:10
  • Still not quite sure what you need help with; is there any reason you can't just default to checking via the internet, and if no connection is found give a "please swipe card" prompt before/after username/password entry?
    – Ben Brocka
    May 3, 2013 at 13:49

1 Answer 1


You want to reduce the amount of effort and annoyance for the user to perform an action.

Logging device: If you give the user a card, it would better serve to something than else more than using your application (are going to keep another card in your wallet just for ONE application ?). Can't you use another card used for other purposes, credit card, student card, etc. ?

That said if you give the user a card, it is a personal one therefore it can be used as a logging device therefore no login nor password to remember or connection to the internet.

Internet: Does your application uses internet ? I it does not, then do not use internet for logging.

If it does then the user is going to manage to have a connection while using the application. So no logging device required.

Authentication: Why has the user need to log in ? Is it useful for her or for you ? If it is just for you then forget about it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.