为什么 System.Environment.MachineName 值是大写的?
我的计算机名称是小写的(我在“高级系统设置”对话框的“计算机名称”选项卡中看到),但 System.Environment.MachineName
报告它是大写的。这是为什么?这对我来说是一个真正的问题,因为从我的测试来看,PrincipalPermissionAttribute 对角色名称执行区分大小写的比较(我将自定义角色映射到 Windows 组,并且我的环境是非域)。有什么建议吗?
My machine name is lowercased (i see that in Advanced system settings dialog, Computer Name tab) but System.Environment.MachineName
reports it uppercased. Why is that? This is a real problem for me because from my tests PrincipalPermissionAttribute
performs case sensitive comparison for role names (i map my custom roles to Windows groups and my environment is non-domain). Any advise?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
.NET 4.7.1 的
Environment.MachineName
源代码位于:https://referencesource.microsoft.com/#mscorlib/system/environment.cs,be0b5c103d248dce它 p/invokes
GetComputerName
如下所示:https://referencesource.microsoft.com/#mscorlib/microsoft/win32/win32native.cs,0c7d7f4f83d4ddd0这是 GetComputerName 函数: https://msdn.microsoft.com/en-us/library/windows/desktop/ms724295(v=vs.85).aspx,其中指出:
计算机名称的 MSDN,https://msdn.microsoft。 com/en-us/library/ms724220(VS.85).aspx,指出:
因此,按照惯例,NetBIOS 名称为大写,
System.Environment.MachineName
返回系统的 NetBIOS 名称。The source for
Environment.MachineName
for .NET 4.7.1 is here: https://referencesource.microsoft.com/#mscorlib/system/environment.cs,be0b5c103d248dceIt p/invokes
GetComputerName
as seen here: https://referencesource.microsoft.com/#mscorlib/microsoft/win32/win32native.cs,0c7d7f4f83d4ddd0Here is the GetComputerName function: https://msdn.microsoft.com/en-us/library/windows/desktop/ms724295(v=vs.85).aspx, which states:
The MSDN for Computer Names, https://msdn.microsoft.com/en-us/library/ms724220(VS.85).aspx, states:
So, NetBIOS names are upper case by convention and
System.Environment.MachineName
returns the system's NetBIOS name.使用 Dns.GetHostName 代替,应该返回它具有正确的大小写(至少在我的计算机上是这样)。
Use Dns.GetHostName instead, that should return it with the correct case (at least it does on my computer).
根据这篇 MSDN 文章,它不区分大小写
http://msdn.microsoft.com/en-us/ library/ms724220(VS.85).aspx
在什么情况下,它进行区分大小写的比较?
According to this MSDN article, its case - insensitive
http://msdn.microsoft.com/en-us/library/ms724220(VS.85).aspx
In which scenario, it is doing case sensitive comparison ?