Как настроить текущего пользователя для WebPartManager?
Из того, что я читал, следующий код должен сначала убедиться, что существует запись MembershipUser для "ArthurDent", затем установить "ArthurDent" в качестве текущего пользователя и, наконец, назначить его запись MembershipUser переменной mUser.
if (Membership.GetUser("ArthurDent") == null)
{
Membership.CreateUser("ArthurDent", "thisisapassword");
}
FormsAuthentication.SetAuthCookie("ArthurDent", true);
MembershipUser mUser = Membership.GetUser();
Вместо этого переменная mUser остается нулевой.'
Моя цель состоит в том, чтобы программно установить для текущего пользователя допустимую запись, чтобы я мог установить WebPartManager.DisplayMode на странице, которая начала вызывать ошибки при добавлении BlogEngine на мой веб-сайт.
2 ответа
Ответ заключается в том, что BlogEngine активно подавляет обычную работу Page.User.Identity, которую извлекает Membership.GetUser(). Когда я заменил FormsAuthentication.SetAuthCookie на следующий код из BlogEngine...
Security.AuthenticateUser("ArthurDent", "thisisapassword", true);
... он подтвердил подлинность Артура и вошел в него.
Эта проблема обычно возникает, когда приложение нарушает правило, определенное в файле web.config. Например, я запускал ваш код в своей локальной среде, используя проверку подлинности Windows, и сначала CreateUser не удался, потому что строка пароля была недостаточной длины. Я дополнил пароль дополнительными символами и смог создать пользователя с помощью предоставленного кода. Проверьте раздел, чтобы изучить предварительные требования к паролю. При первом рассмотрении это выглядит как проблема конфигурации.