看這樣的說法:查看此語句:System.Security.Principal.WindowsIdentity.GetCurrent()。Name;
messageBox.show(System.Security.Principal.WindowsIdentity.GetCurrent().Name);
該語句的輸出是:
羅山\ mohdibrahim.tasal
,但我想只顯示我:
mohdibrhaim.tasal
我該怎麼做?
看這樣的說法:查看此語句:System.Security.Principal.WindowsIdentity.GetCurrent()。Name;
messageBox.show(System.Security.Principal.WindowsIdentity.GetCurrent().Name);
該語句的輸出是:
羅山\ mohdibrahim.tasal
,但我想只顯示我:
mohdibrhaim.tasal
我該怎麼做?
您可以將名稱分割在「\」上並檢索第二項。
例如
System.Security.Principal.WindowsIdentity.GetCurrent().Name.Split('\\')[1]
編輯: 你想使這個安全首先檢查反斜槓的存在 - 如果沒有一個,你只是想取的名字原樣。
你爲什麼不修剪返回值,直到'\'
達到, 下面的代碼做的伎倆
WindowsIdentity current = System.Security.Principal.WindowsIdentity.GetCurrent();
if(current!=null)
{
string name = current.Name;
string value = name.Substring(name.IndexOf('\\') + 1);
}
Environment.UserName應該沒有任何分裂或額外的邏輯工作。
如果名稱中沒有「\」(如果機器是*不是域的一部分),該怎麼辦?你的代碼會崩潰.... –
沒錯,我會添加一個註釋來澄清 – AdaTheDev