从SecurityIdentifier获取用户名

时间:2010-09-16 16:50:18

标签: windows-authentication username security-identifier

我在用户创建存储在数据库中的报告的网站上使用Windows身份验证。当我保存报告时,我想知道哪个用户填写了它,所以我一直在将他们的WindowsIdentity的SecurityIdentifier存储在数据库中,以确定哪个用户填写了报告。以下是我用于获取当前Windows用户的SecurityIdentifier值的代码:

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;
}

问题

  1. 我是否通过将SecurityIdentifier存储在数据库中而不是用户名或其他值来做正确的事情?在这种情况下,最好的做法是什么?

  2. 如何从我存储的SecurityIdentifier值中获取用户的用户名?

1 个答案:

答案 0 :(得分:2)

应包含用户名:

HttpContext.Current.User.Identity.Name