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

后端 未结 8 700
面向向阳花
面向向阳花 2020-12-02 22:23

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

8条回答
  •  无人及你
    2020-12-02 22:55

    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.

提交回复
热议问题