Как получить имя пользователя без домена

42
задан niton 16 April 2015 в 03:12
поделиться

4 ответа

Я не верю так. У меня есть имя пользователя с помощью этих методов прежде -

System.Security.Principal.IPrincipal user = System.Web.HttpContext.Current.User;   
System.Security.Principal.IIdentity identity = user.Identity;  
return identity.Name.Substring(identity.Name.IndexOf(@"\") + 1);

или

Request.LogonUserIdentity.Name.Substring(Request.LogonUserIdentity.Name.LastIndexOf(@"\") + 1);
37
ответ дан Ross Presser 26 November 2019 в 23:23
поделиться

При использовании.NET 3.5, Вы могли бы всегда создавать дополнительный метод к классу WindowsIdentity, который делает эту работу для Вас.

public static string NameWithoutDomain( this WindowsIdentity identity )
{
    string[] parts = identity.Name.Split(new char[] { '\\' });

    //highly recommend checking parts array for validity here 
    //prior to dereferencing

    return parts[1];
}

тот путь все необходимо сделать где угодно в коде, ссылка:

Запрос. LogonUserIdentity. NameWithoutDomain ();

5
ответ дан Mr. Kraus 26 November 2019 в 23:23
поделиться
static class IdentityHelpers
{
    public static string ShortName(this WindowsIdentity Identity)
    {
        if (null != Identity)
        {
            return Identity.Name.Split(new char[] {'\\'})[1];
        }
        return string.Empty;
    }
}

при включении этого кода Вы могли бы тогда просто сделать что-то как:

WindowsIdentity a = WindowsIdentity.GetCurrent();
Console.WriteLine(a.ShortName);

, Очевидно, в веб-среде, Вы не записали бы в консоль - просто пример...

1
ответ дан BenAlabaster 26 November 2019 в 23:23
поделиться

Я предлагал использовать regexpes, но они будут излишеством. [Система. Строка. Разделение] ( http://msdn.microsoft.com/en-us/library/b873y76a (По сравнению с 80) .aspx) делает задание.

string[] parts= username.Split( new char[] {'\\'} );
return parts[1];
0
ответ дан Johan Buret 26 November 2019 в 23:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: