Я использую проверку подлинности Windows на веб-сайте, где пользователи создают отчеты, которые хранятся в базе данных. Когда я сохраняю отчет, я хочу знать, какой пользователь заполнил его, поэтому я храню SecurityIdentifier их WindowsIdentity в базе данных, чтобы определить, какой пользователь заполнил отчет. Вот код, который я использую для получения значения SecurityIdentifier для текущего пользователя Windows:
public static string GetCurrentUserSID()
{
IPrincipal princ = HttpContext.Current.User;
WindowsIdentity winId = princ.Identity as WindowsIdentity;
SecurityIdentifier si = winId.User;
string securityIdentifierValue = winId.User.Value;
return securityIdentifierValue;
}
Вопросы * * 1004
Правильно ли я поступаю, сохраняя SecurityIdentifier в базе данных вместо имени пользователя или какого-либо другого значения? Какова наилучшая практика в такой ситуации?
Как получить имя пользователя из сохраненного мной значения SecurityIdentifier?