2009-10-12 5 views

Répondre

2

Je l'ai fait dans les deux sens ...

  • Si vous stockez le SID, vous pouvez renommer le compte sans casser l'application, mais ce n'est pas lisible par l'homme.
  • Si vous stockez le nom d'utilisateur, il est facile à lire, mais vous devez mettre à jour vos données si le compte est renommé.
+0

Pour mon projet particulier, j'ai décidé de stocker le nom d'utilisateur. La raison principale est que cette version initiale nécessitera une édition directe dans la base de données. À un certain moment, je vais écrire un écran de gestion de compte, dans le but de migrer à l'aide de SID – eyesnz

3

Je stocker le SID et utiliser LookupAccountSID lorsque/vous devez afficher le nom associé à ce compte.

+0

Je veux stocker SID et nom d'utilisateur dans ma table de base de données. quel DBType je peux choisir à ma colonne pour SID? ** SecurityIdentifier.Value ** Peut-il être transformé en ** uniqueidentifier **? Ou est-il préférable de stocker SID en tant que chaîne? – user3373603

+0

J'irais probablement avec une chaîne. –

2

Nous avons construit une petite classe pour concaténer les deux et comparer seulement sur le côté. Le format est similaire à la chaîne suivante:

"Domain\\User\nS-1-5-21-...........-1129" 

Cela nous permet de noms « amis » dans la base de données et débogueur, mais toutes les liaisons sont en fait de la part de sid de la valeur. Que se passe-t-il lorsque les changements de nom d'utilisateur sont demandés? Les données sont obsolètes et restent ainsi :)

BTW, si vous faites quelque chose comme ceci assurez-vous que vous ne pouvez pas obtenir le 'nom d'affichage' hors de l'objet puisque vous ne voulez pas qu'il soit affiché à un utilisateur comme il peut être périmé. À la place, fournissez une routine LookupUserName() qui effectue la résolution correcte du SID sur un nom de compte.

Enfin, assurez-vous de stocker le SID mais vous le faites. Vous ne voulez pas stocker JDoe et quand Jane quitte et John commence un mois plus tard, il a soudainement accès?

Questions connexes