Каковы различия (негласно) между Page. Пользователь. Идентификационные данные и Запрос. LogonUserIdentity? Не различия в типе, имени, и т.д. но различиях в том, как они реализованы негласно (т.е. окна вызовов xxx API и другие вызовы asp.net xxx API...).
Это зависит от того, какой механизм вы используете для аутентификации пользователей и какие настройки у вас есть для олицетворения.
Например, на сервере разработки VS с использованием аутентификации Forms, стандартного поставщика членства 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: [ComputerName] \ Ben
Первая строка (Page.User.Identity) - это учетная запись аутентификации форм, с которой я вошел на сайт, вторая строка - это идентификатор Windows, под которым выполняется запрос - как я ' Если олицетворение не включено, это мой вход в Windows, поскольку это учетная запись, под которой работает веб-сервер.
Что касается API, HttpRequest.LogonUserIdentity вызывает класс WindowsIdentity, который всегда будет представлять учетную запись пользователя Windows , а Page.User создает объект, реализующий IPrinciple, который позволяет вам представлять пользователя с помощью ряда различных резервных хранилищ - например, структуры базы данных SQL, предоставляемой MembershipProvider.