System.Environment.UserName內部調用有沒有更快的方法來檢索System.Environment.UserName?
[的DllImport( 「ADVAPI32.DLL」,字符集= CharSet.Auto)] 內部靜態的extern BOOL GetUserName(StringBuilder的lpBuffer,參考INT n大小);
每個調用似乎都會觸發AD,因此網絡延遲和AD查詢會影響執行速度。
你知道是否有更好的方法來檢索這個值?
線程上的某處可能是某個緩存的SID? 因此,我可以讀取用戶名& SID並在本地緩存這些(執行時),並且只有在獲取新SID(或沿着這些行)時才查詢System.Environment.UserName。
謝謝,
只是一個想法,也許有一種方法迫使Windows服務器緩存來自AD的結果一段時間? – stic 2010-07-29 14:20:20
也許我錯過了一些顯而易見的東西,但是爲什麼你在檢索一次後沒有自己緩存用戶名呢? – Blub 2010-07-29 16:10:25
單身人士的詛咒:( 用戶名被放入每個日誌條目,其中我只有一個線程間共享的記錄器實例/遠程調用(模擬)等期間使用... – stic 2010-07-29 17:16:31