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?