Is there any built-in utility or helper to parse HttpContext.Current.User.Identity.Name
, e.g. domain\user
to get separately domain name if exists and user?
Or is there any other class to do so?
I understand that it's very easy to call String.Split("\")
but just interesting
This is better (easier to use, no opportunity of NullReferenceExcpetion
and conforms MS coding guidelines about treating empty and null string equally):
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;
}
}
Usage:
IIdentity id = HttpContext.Current.User.Identity;
id.GetLogin();
id.GetDomain();
This requires C# 3.0 compiler (or newer) and doesn't require 3.0 .Net for working after compilation.