Это зависит от того, какой механизм вы используете для аутентификации пользователей, и какие настройки вы используете для олицетворения.
Например, на сервере разработки VS с использованием проверки подлинности с помощью форм, стандартного поставщика членства SQL и следующего кода:
// m_LoggedIn is a Literal control on the page:
m_LoggedIn.Text = string.Format("<br />Page.User.Identity: {0} " +
"<br />Request.LogonUserIdentity: {1}",
Page.User.Identity.Name,
Request.LogonUserIdentity.Name);
Я получаю следующий вывод:
Page.User.Identity: zhaph
Request.LogonUserIdentity: [имя_компьютера] \ Ben
Первая строка (Page.User.Identity) - это учетная запись для проверки подлинности с помощью форм, с которой я вошел на сайт, вторая строка - это идентификатор Windows, под которым выполняется запрос - поскольку я не включил олицетворение, это мой вход в Windows, так как это учетная запись, под которой работает веб-сервер.
С точки зрения API, HttpRequest.LogonUserIdentity вызывает класс WindowsIdentity, который всегда будет представлять учетную запись пользователя Windows , тогда как Page.User создает объект, который реализует IPrinciple, который позволяет вам представлять пользователя с помощью нескольких различных хранилищ резервных копий - например, структуры базы данных SQL, предоставляемой MembershipProvider.