Как настроить текущего пользователя для 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 не удался, потому что строка пароля была недостаточной длины. Я дополнил пароль дополнительными символами и смог создать пользователя с помощью предоставленного кода. Проверьте раздел, чтобы изучить предварительные требования к паролю. При первом рассмотрении это выглядит как проблема конфигурации.

Другие вопросы по тегам