我的機器名稱是小寫(我看到在高級系統設置對話框中,計算機名稱選項卡),但System.Environment.MachineName
報告大寫。這是爲什麼?這對我來說是一個真正的問題,因爲從我的測試PrincipalPermissionAttribute
對角色名稱進行區分大小寫比較(我將自定義角色映射到Windows組,並且我的環境是非域)。有任何建議嗎?爲什麼System.Environment.MachineName值是大寫的?
回答
改爲使用Dns.GetHostName,應該返回正確的大小寫(至少它在我的電腦上)。
根據這個MSDN文章,它的情況下 - 不敏感 http://msdn.microsoft.com/en-us/library/ms724220(VS.85).aspx
在這情況下,它是做區分大小寫的比較?
我剛剛重新測試它,可以確認如果我有角色爲「MYBOX \ SupportPersonnel」PrincipalPermission引發異常,但在「mybox \ SupportPersonnel」的情況下,一切都按預期工作。我的環境是Windows 7 x64。 – UserControl 2010-12-18 14:09:55
Environment.MachineName
爲用於.NET 4.7.1的源是在這裏:https://referencesource.microsoft.com/#mscorlib/system/environment.cs,be0b5c103d248dce
它的p /調用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,其中指出:
GetComputerName只檢索本地計算機的NetBIOS名稱。 要檢索DNS主機名稱,DNS域名或DNS名稱的完全限定 ,請調用GetComputerNameEx函數。
的MSDN的計算機名稱,https://msdn.microsoft.com/en-us/library/ms724220(VS.85).aspx,指出:
的NetBIOS名稱由最多15個字節的OEM字符,包括 字母,數字,連字符和句號。某些字符是特定於 的字符集。 NetBIOS名稱通常在OEM 字符集中表示。 OEM字符集取決於語言環境。某些OEM 字符集將某些字符表示爲兩個字節。 NetBIOS 按照慣例,名稱以大寫字母表示,其中 從小寫字母到大寫字母的翻譯算法是OEM字符集 的依賴項。
因此,NetBIOS名稱按慣例是大寫,System.Environment.MachineName
返回系統的NetBIOS名稱。
- 1. 爲什麼CultureInfo.NativeName不是始終大寫?
- 2. java中的system.environment.machinename?
- 3. #define:爲什麼要大寫?
- 4. 爲什麼PHP布爾既是小寫也是大寫?
- 5. 爲什麼tf.Variable大寫和tf.constant小寫?
- 6. Erlang:爲什麼大寫(=>)寫成(> =)?
- 7. 爲什麼SQL條目寫成大寫?
- 8. 爲什麼選擇屏幕參數的值轉換爲大寫?
- 9. 爲什麼RAZOR輸出一個大寫的布爾值?
- 10. 爲什麼MySQL忽略查詢關鍵字值的大小寫?
- 11. 爲什麼大小寫對象可序列化和大小寫不是?
- 12. 什麼Rascal實體應該是大寫?
- 13. 爲什麼STANDARD_HASH('expr','MD5')的結果總是大寫?
- 14. 爲什麼TableLayout的標題總是以大寫字母顯示?
- 15. 爲什麼GL_SHININESS的最大值是128.0而不是1.0
- 16. 爲什麼區分大小寫和不區分大小寫?
- 17. 爲什麼True/False在Python中大寫?
- 18. 爲什麼XPathNavigator區分大小寫?
- 19. 它爲什麼不把它大寫?
- 20. 爲什麼不.toUpperCase()大寫str [i]?
- 21. 爲什麼要以大塊寫入流?
- 22. 爲什麼Buffer對象有大寫B?
- 23. 爲什麼ASCII以大寫命名?
- 24. 什麼是TimeSeriesChart的最大範圍值
- 25. 什麼是KeyEvent.VK_的最大可能值*
- 26. .tagName DOM屬性爲什麼會返回大寫值?
- 27. 爲什麼有些python變量是大寫而其他是小寫?
- 28. 爲什麼SQL中的查詢主要是用大寫字母寫的?
- 29. 寫一個無窮大數的公式,爲什麼這不是寫成的?
- 30. 爲什麼npm是用JavaScript編寫的?
謝謝,爲我工作! Dns.GetHostName()可能返回一個與NETBIOS名稱不同的名稱(因爲我使用它來構造本地Windows組名)? – UserControl 2010-12-18 14:13:11
@用戶:好吧,'GetHostName'將返回DNS主機名,但我不記得那是如何與netbios名稱相關的。 – 2010-12-18 14:20:15
如果任何人有興趣(因爲我是)[這裏是本地方法](https://msdn.microsoft.com/en-us/library/windows/desktop/ms738527(v = vs.85).aspx)即調用來獲得結果。如果您打算使用此功能,請提供一些有關此過程的詳細信息。 – Will 2015-04-06 19:58:24