系统.环境.用户名可以容易伪造吗?

本文关键字:伪造 易伪造 用户 环境 系统 | 更新日期: 2023-09-27 18:14:03

在Windows WPF桌面应用程序中,我以这种方式使用System.Environment.UserName

 var q = from l in db.Logins where 
                         l.WinLogin.Trim().Equals(System.Environment.UserName, StringComparison.InvariantCultureIgnoreCase)
                      && l.WinDomain.Trim().Equals(System.Environment.UserDomainName, StringComparison.InvariantCultureIgnoreCase)
                        select l.LoginID;
  var login = q.FirstOrDefault();
  if (login == null)
    /*Access rejected*/
  else
    /*Access granted*/

我想知道System.Environment.UserNameSystem.Environment.UserDomainName的内容是否可以在Windows域中轻松伪造(设置为某人的其他帐户(,或者非管理员用户是否可以轻松伪造。我希望此身份验证对于不需要最高安全性的普通Windows应用程序是可以的,只是想确保我没有忽略一些明显的东西。

例如,如果我创建与 windows 域同名的家庭工作组,然后在该工作组内创建一个用户,然后使用 VPN 连接到该 Windows 域并在家庭工作组计算机上安装该应用程序,我会伪造这些变量并获得访问权限吗?

系统.环境.用户名可以容易伪造吗?

不,System.Environment变量仅适用于该计算机。用户名和域名不能伪造。调用最终由ADVAPI32处理,这是负责内部Windows内容的Windows组件。

您也不能使用VPN或其他方法伪造它。这并不意味着他们无法在应用程序和您连接到的数据库之间切换。确保也确保这一点。