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.