在我System.Environment.UserName
以这种方式使用的 Windows WPF 桌面应用程序中:
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*/
我想知道非管理员用户是否可以在 Windows 域中轻松伪造System.Environment.UserName
&的内容(设置为其他人的帐户)。System.Environment.UserDomainName
我希望这种身份验证对于不需要最高安全性的普通 Windows 应用程序来说是可以的,只是想确保我没有忽略一些明显的事情。
例如,如果我创建与 windows 域同名的家庭工作组,然后在该工作组中创建一个用户,然后使用 VPN 连接到该 windows 域并在家庭工作组计算机上安装应用程序,我会伪造这些变量并获得访问与否?