У меня есть проект MVC Asp.net, аутентифицирующий через AD. Я хотел бы сохранить информацию об аудите в таблицах для зарегистрированного пользователя тока. Что я должен хранить в базе данных? Я в настоящее время использую SamAccountName для своих поставщиков членства и роли. Я должен использовать это? Я должен использовать более подробный и современный UserPrincipalName? Что, если мы в конечном счете заканчиваем тем, что использовали несколько доменов?
Что относительно Гуида? Гуид походил бы на очевидный выбор, но я ничего не знаю об этом. Почему это nullable? Это оценивает изменение? Для чего это используется?
Согласно SID по сравнению с GUID...
Причина использования SIDs вообще и не GUID, для обратной совместимости. Windows NT использует SIDs для идентификации пользователей и групп в ACLs на ресурсах.
SIDs на самом деле изменится при перемещении пользователя в новый домен GUID останется постоянным. Это смотрит на меня как GUID, способ пойти, если Вы не намереваетесь аутентифицировать против сервера NT4 AD.
Я не уверен, что сделать здесь, поскольку я не могу принять свой собственный ответ в течение 2 дней. Большинство всесторонних побед объяснения?
Согласно SID vs. GUID ...
Причина использования SID, а не GUID, заключается в обратной совместимости. Windows NT использует идентификаторы безопасности для идентификации пользователей и групп в списках управления доступом к ресурсам.
При этом я решил использовать GUID. SID фактически изменятся, если вы переместите пользователя в новый домен, GUID останется постоянным. Если вы не планируете запускать свое приложение на сервере NT4 AD, вам подойдет GUID.
Если вы используете ASP.NET MVC (или Webforms, если на то пошло) с проверкой подлинности Windows, почему бы просто не использовать имя пользователя, которое вы получаете из этого свойства:
HttpContext.Current.User.Identity.Name
Возвращает домен / имя пользователя. Я работал над корпоративными веб-приложениями, которые использовали это для целей аудита.
Возможно, вы захотите использовать SID - это то, что в большинстве случаев использует сама ОС. SID также уникальны для разных доменов или рабочих групп.
Проблема только с именем пользователя заключается в том, что его можно изменить, тогда как SID является фиксированным.
samAccountName - это имя пользователя, с которым пользователь входит в систему. Немного более "полным" можно сделать и с помощью предисловия домена, но нет причин не использовать очевидное поле имени пользователя
.