我目前正在使用Windows身份驗證檢查帶有wcf服務和通過tcp連接到它的客戶端應用程序的系統。比較服務器上的WindowsIdentity.Current.Name
在某些操作中,需要將用戶名存儲在對象屬性上,將其發送到服務並將其與從客戶端傳遞的憑據進行比較。該對象被進一步處理。
客戶最近發現,這不總是按預期工作。我研究了這個問題,發現有些情況下,在客戶端和服務器端使用不同的用戶名(它在大寫和小寫的用法上有所不同)。
我已經安裝了一個解決方法(顯然在string.Equals中使用了IgnoreCase選項),但是我對真正的修復感興趣。
在客戶端上,它使用WindowsIdentity.Current.Name作爲字符串,在服務端使用ServiceSecurityContext.Current.WindowsIdentity.Name作爲字符串。
做這種比較的正確方法是什麼?