Я не верю так. У меня есть имя пользователя с помощью этих методов прежде -
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);
При использовании.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 ();
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);
, Очевидно, в веб-среде, Вы не записали бы в консоль - просто пример...
Я предлагал использовать regexpes, но они будут излишеством. [Система. Строка. Разделение] ( http://msdn.microsoft.com/en-us/library/b873y76a (По сравнению с 80) .aspx) делает задание.
string[] parts= username.Split( new char[] {'\\'} );
return parts[1];