我在用户创建存储在数据库中的报告的网站上使用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;
}
我是否通过将SecurityIdentifier存储在数据库中而不是用户名或其他值来做正确的事情?在这种情况下,最好的做法是什么?
如何从我存储的SecurityIdentifier值中获取用户的用户名?
答案 0 :(得分:2)
应包含用户名:
HttpContext.Current.User.Identity.Name