Built-in helper to parse User.Identity.Name into Domain\Username Built-in helper to parse User.Identity.Name into Domain\Username asp.net asp.net

Built-in helper to parse User.Identity.Name into Domain\Username


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.


System.Environment.UserDomainName gives you the domain name only

Similarly, System.Environment.UserName gives you the user name only


var components = User.Identity.Name.Split('\\');var userName = components.Last() var domainName = components.Reverse().Skip(1).FirstOrDefault()