Sto progettando un'app Web di riconoscimento dei dipendenti Intranet utilizzando ASP.NET MVC C # / MS SQL Server. Questo sarà accessibile solo dalla rete.
I dipendenti e i dirigenti saranno in grado di dare una ricompensa agli altri dipendenti per un lavoro ben fatto o per giorni specifici per i dipendenti. Circa 1000 dipendenti in totale.
Mi piacerebbe non richiedere un utente separato / pw, quindi sto usando l'autenticazione di Windows.
Per lavorare con / memorizzare i dati sulle transazioni premio, ho bisogno di avere un db SQL separato.
Il mio piano è quello di importare tutti i dipendenti da Active Directory a SQL Server e utilizzare ObjectSid come chiave primaria per il Dipendente sul lato SQL. Sono a conoscenza del fatto che questo ObjectSid non cambierà a meno che il dipendente non si trasferisca in un nuovo dominio (che è altamente improbabile a questo punto). Sembrerà qualcosa di simile -
Employee:
ObjectSID - PK
username - from Windows AD
firstName
lastName
etc.
Traccio le transazioni di ricompensa, i saldi dei dipendenti, ecc. in altre tabelle.
Quando accedono all'app, sono in grado di utilizzare il loro nome utente Windows nella mia vista tramite
@HttpContext.Current.User.Identity.Name.
Posso quindi usare quel nome utente per abbinarlo a Employee.username, restituire l'ObjectSID (il PK) e procedere a utilizzarlo come ID univoco per memorizzare le loro attività nell'app.
Ci sono grossi problemi che ti saltano addosso con quel piano?
In definitiva, avrò una minore manutenzione dei dati da fare quando un dipendente ha un cambio di nome (matrimonio), ma questo è abbastanza raro che non lo considero un grosso problema.
Sono graditi pensieri o idee su come affrontarlo in modo diverso.
Grazie.