La mia applicazione deve supportare uno scenario di "cambio di turno". In sostanza, una persona sta gestendo alcune risorse. Al cambio turno, la persona che era lì lascia il segno di sostituzione. Le risorse possono sopravvivere da sole per non più di tre minuti. Il server riassegnerà le risorse se vengono trascurate (il che non è l'ideale). Attualmente, la nostra applicazione ha un sistema utente personalizzato e supporta una funzione di switch rapido dell'utente.
Tuttavia, il nostro cliente principale desidera utilizzare gli utenti del dominio Windows invece del nostro sistema utente personalizzato. Vuole legare il nostro sistema di autorizzazione ai gruppi di utenti di macchine locali. Ha il grande vantaggio di poter strappare un sacco di codice di gestione degli utenti discutibile e insicuro, e non dovrò più memorizzare le password. Nella mia mente, questo offre due opzioni per il passaggio rapido:
-
Posso rendere il nostro software (configurabile) disconnesso da windows in uscita e auto-start quando un utente effettua il login. Questo ha uno svantaggio in quanto le risorse sono fuori schermo per un certo periodo di tempo. È facile, però.
-
Posso mantenere un modulo di accesso in-applicazione in cui convalidare l'utente di Windows e impersonare quell'utente per le richieste del mio server. In un precedente lavoro ho lavorato su un pacchetto software che ha adottato questo approccio. Ho sempre pensato che fosse un po 'strano avere un'applicazione in esecuzione come utente diverso dal desktop. Ci sono alcuni problemi di sicurezza significativi che vanno con questo approccio. Probabilmente finirò col mantenere le impostazioni per utente Windows, non per utente dell'applicazione, ecc.
Pensieri? Quale percorso consigli e perché? C'è un modo migliore per farlo che non ho considerato?