0

我在用户创建存储在数据库中的报告的网站上使用 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 值中获取用户的用户名?

4

1 回答 1

2

应包含用户名:

HttpContext.Current.User.Identity.Name
于 2010-09-16T16:58:32.120 回答