And*_*ndy 37 .net windows username
在.NET中,似乎有几种方法可以获取当前的Windows用户名.其中三个是:
string name = WindowsIdentity.GetCurrent().Name;
Run Code Online (Sandbox Code Playgroud)
要么
string name = Thread.CurrentPrincipal.Identity.Name;
Run Code Online (Sandbox Code Playgroud)
要么
string name = Environment.UserName;
Run Code Online (Sandbox Code Playgroud)
有什么区别,为什么选择一种方法而不是另一种?还有其他方法吗?
sis*_*sve 32
Environment.UserName在advapi32.dll中调用GetUserName.这意味着如果您冒充其他用户,此属性将反映出来.
Thread.CurrentPrincipal有一个setter,可以通过编程方式进行更改.(这不是假冒btw.)
WindowsIdentity是您当前的Windows身份标识(如果有).它不一定会反映用户,认为ASP.NET使用FormsAuthentication.然后WindowsIdentity将是NT服务,但FormsIdentity将是登录用户.还有PassportIdentity,您可以构建自己的东西以进一步复杂化.
| 归档时间: |
|
| 查看次数: |
26938 次 |
| 最近记录: |