我有以下代码,它将获取登录的UserID
System.Security.Principal.WindowsPrincipal p = System.Threading.Thread.CurrentPrincipal as System.Security.Principal.WindowsPrincipal;
//networkID=User.
string strName = p.Identity.Name;
int start;
start = strName.IndexOf("\") + 1 ;
strName = strName.Substring(start, strName.Length - start);
但是start = strName.IndexOf(“\”)+ 1;抛出错误说Newline不变。我收到的登录用户名是domainName \ username,我只想使用用户名。请帮忙
答案 0 :(得分:6)
尝试IndexOf(@"\")
或IndexOf("\\")
。
答案 1 :(得分:5)
\
是转义字符 - 您必须使用"\\"
或@"\"
才能使其生效。
答案 2 :(得分:1)
你必须加倍escape your backslashes:
start = strName.IndexOf("\\") + 1 ;
答案 3 :(得分:0)
您的反斜杠正在逃避您的上一次报价。使用双反斜杠来逃避反斜杠。
start = strName.IndexOf("\\") + 1 ;
答案 4 :(得分:0)
\
是一个转义字符。您需要使用另一个\
转义它或使用逐字字符串文字:
start = strName.IndexOf("\\") + 1 ;
或者:
start = strName.IndexOf(@"\") + 1 ;