我目前正在编写一个可以做几件事的方法:
- 验证操作系统版本。
- 验证操作系统平台。
- 验证 Account 不是 null。
- 验证帐户的角色是否正确。
现在,如果我实现传统的嵌套,它是否有效。绝对零问题 - 但是,为了我认为更清洁的实现,它变成了一个可爱的错误。
语法:
bool result = false;
WindowsIdentity user = WindowsIdentity.GetCurrent();
WindowsPrincipal role = new WindowsPrincipal(user);
result = ((Environment.OSVersion.Platform == PlatformID.Win32NT &&
Environment.OSVersion .Version.Major > 6
&& role != null && role.IsInRole(WindowsBuiltInRole.Administrator)
? true : false);
但我收到以下异常。
运算符
&&
不能应用于 和 类型的操作System.PlatformID
数bool
。
我真的不确定为什么它不起作用,它应该。我是在错误地实现逻辑还是什么,我真的很茫然。
这种语法确实有效,但是当我将其转换为上述条件时,它就不起作用了。
if(Environment.OSVersion.Platform == PlatformID.Win32NT && Environment.OSVersion
.Version.Major > 6)
{
WindowsIdentity user = WindowsIdentity.GetCurrent();
WindowsPrincipal role = new WindowsPrincipal(user);
if(role != null)
{
if(role.IsInRole(WindowsBuiltInRole.Administrator))
{
return true;
}
}
return false;
}
return false;
更新:
这是出现红色曲线的地方,Visual Studio 给出了上述错误:
PlatformID.Win32NT && Environment.OSVersion.Version.Major > 6