HttpContext.Current.User.IsInRole вызывает HttpUnhandledException. Зачем? - PullRequest
1 голос
/ 16 ноября 2011

Пока я работал на своем локальном хосте, он работал безупречно.

Однако, когда я развернул приложение на другом сервере, оно начало вызывать исключение.

По сути, это инструкция, которая вызывает исключение:

HttpContext.Current.User.IsInRole(*roleName*)

где roleName - это строка, представляющая различные роли в приложении.

Исключение:

System.Web.HttpUnhandledException

Обновление : это способ аутентификации пользователя.

protected void LoginControl_Authenticate(object sender, AuthenticateEventArgs e)
{
    Page.Validate();
    if (!Page.IsValid) return;

    if (MyAuthenticate(LoginControl.UserName, LoginControl.Password))
    {
        if (LoginControl.RememberMeSet == true)
        {
            createCookie(LoginControl.UserName, Convert.ToInt32(ViewState["idcustomer"]), true);
        }
        else
        {
            createCookie(LoginControl.UserName, Convert.ToInt32(ViewState["idcustomer"]), false);
        }
        e.Authenticated = true;
        Response.Redirect(FormsAuthentication.GetRedirectUrl(LoginControl.UserName, true));
    }
    else
    {
        e.Authenticated = false;
    }

Если это связано с аутентификацией пользователя, что мне не хватает? Заранее спасибо.

ОБНОВЛЕНИЕ : Спасибо всем. Я только что сделал удаленную отладку и понял, что это настоящая ошибка:

enter image description here

Теперь вот такая ситуация: пользователь прошел аутентификацию на странице входа. Итак, я думаю, что это не проблема с подключением к БД. В противном случае Пользователь не смог бы передать страницу входа в MasterPage (где возникает эта ошибка).

Чего мне не хватает? Еще раз спасибо,

Ответы [ 2 ]

0 голосов
/ 25 января 2012

Решением этой проблемы было создание провайдера mysql_aspnet_membership путем предоставления полного доверия через machine.config и автоматической генерации схемы вместо ручного создания таблиц членства в базе данных, что, как я думал, могло быть правильным способомсоздайте базу данных.

Впоследствии это больше не сломалось.

0 голосов
/ 16 ноября 2011

Дикий удар в темноте, но внутреннее исключение, вероятно, является исключением нулевой ссылки, вызванным тем, что пользователь не аутентифицирован на сервере, поэтому HttpContext.Current.User имеет значение nullДержу пари, что на встроенном веб-сервере не включена встроенная проверка подлинности Windows или аналогичная проблема с настройкой проверки подлинности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...