So, I've been developing plenty of small apps for our department, they all use .NET and LDAP authentication - it works great, but looking back the design leads to some flaws. It's quite easy to "orphan" a user or their data.
A few examples:
1) An app uses a users login name to associate them with records, but they get married and their login name changes. Now they can no longer see their past records
2) An app uses the SID (unique identifier in AD), but our admin routinely renames the person when people leave and a new person takes their job role - now the new person see's all the old persons records.
3) Copy the username and SID to the database, sync them on every login. This works, but again in the above two scenarios - you never know what to do.
So, how do enterprise apps, or even other programmers/apps handle it? I know some places use custom developed user-management software that goes out and updates all appliciable places when a user is change/deleted, but that doesnt really seem feasible in my case.
A few examples:
1) An app uses a users login name to associate them with records, but they get married and their login name changes. Now they can no longer see their past records
2) An app uses the SID (unique identifier in AD), but our admin routinely renames the person when people leave and a new person takes their job role - now the new person see's all the old persons records.
3) Copy the username and SID to the database, sync them on every login. This works, but again in the above two scenarios - you never know what to do.
So, how do enterprise apps, or even other programmers/apps handle it? I know some places use custom developed user-management software that goes out and updates all appliciable places when a user is change/deleted, but that doesnt really seem feasible in my case.