是否有任何内置的实用程序或帮助程序来解析HttpContext.Current.User.Identity.Name
,例如domain\user
,如果存在和用户单独获取域名?
或者还有其他课程吗?
我知道这很容易打电话String.Split("\")
但很有意思
这是更好的(更容易使用,没有机会NullReferenceExcpetion
和符合MS编码指南有关处理空字符串和空字符串):
public static class Extensions { public static string GetDomain(this IIdentity identity) { string s = identity.Name; int stop = s.IndexOf("\\"); return (stop > -1) ? s.Substring(0, stop) : string.Empty; } public static string GetLogin(this IIdentity identity) { string s = identity.Name; int stop = s.IndexOf("\\"); return (stop > -1) ? s.Substring(stop + 1, s.Length - stop - 1) : string.Empty; } }
用法:
IIdentity id = HttpContext.Current.User.Identity; id.GetLogin(); id.GetDomain();
这需要C#3.0编译器(或更新版本),并且在编译后不需要3.0 .Net来工作.
System.Environment.UserDomainName
仅为您提供域名
同样,System.Environment.UserName
仅为您提供用户名
var components = User.Identity.Name.Split('\\'); var userName = components.Last() var domainName = components.Reverse().Skip(1).FirstOrDefault()