Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC 3 - Объект User равен null / 24 сообщений из 24, страница 1 из 1
26.02.2015, 17:08
    #38889806
НемоКэп42
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
Неаутентифицированный пользователь пытается зайти на страницу залогинивания. Получаю исключение NullReferenceException. В методе LogOn у меня всё стандартно (при этом сама схема залогинивания тоже стандартная - взял с предлагаемой по умолчанию в шаблоне проекта ASP.NET MVC)

Код: c#
1.
2.
3.
4.
5.
6.
            if (User.Identity.IsAuthenticated)
            {
                return RedirectToAction("Index", "Home");
            }

            return View();



Удалось установить, что объект User равен null. Как такое может быть? При этом контекст (HttpContext) существует. Вообще, при любом запросе - на регистрацию, ещё где-то - где идёт обращение к User, неаутентифицированный пользователь равен null. С аутентифицированным не пробовал - не знаю, как такую ситуацию смоделировать, если не могу залогониться.


Да, при этом я нахожусь в домене. И сайт запущен у меня на рабочей машине. А база дынных с пользователями - на сервере на виртуальной машине. Это может влиять? Штука в том, что другие запросы к этой же БД идут нормально - всё, что не касается User, из БД вытаскивает и на сайте показывается.
...
Рейтинг: 0 / 0
26.02.2015, 17:14
    #38889813
НемоКэп42
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
Раньше у меня всё работало, когда не было домена или когда сайт был запущен на том же сервере, на котором БД крутятся. Я пока не пробовал перенести БД к себе на машину - может, что-то изменится. Попозже попробую.

В интернете как-то непонятно решают эту проблему

http://stackoverflow.com/questions/3704284/httpcontext-current-user-is-null-in-controllerbaseasp-net-mvc
http://www.dotnetfunda.com/forums/show/18457/requestuser-object-is-null-in-controller-constructor-in-aspnet-mvc

При этом непонятно, как это решает проблему. Почему во втором примере, например, запрашивается имя пользователя, если пользователь null? Ну я добавил переопределение метода Initialize с параметром констекста, но User-то в этом контексте всё равно null.
...
Рейтинг: 0 / 0
26.02.2015, 17:28
    #38889834
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
НемоКэп42,

Перенос БД не поможет. А что там с authentication cookie? Создается?
...
Рейтинг: 0 / 0
27.02.2015, 11:35
    #38890364
monstrU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
НемоКэп42,

а как у тебя запущен сайт? как сконфигурирована аутентификация?
вдруг у тебя все аутентификации выключены
...
Рейтинг: 0 / 0
28.02.2015, 04:59
    #38891231
НемоКэп42
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
monstrUНемоКэп42,

а как у тебя запущен сайт? как сконфигурирована аутентификация?
вдруг у тебя все аутентификации выключены
Да, в IIS запущено всё.

Насчёт как сконфигурирована аутентификация - это где посмотреть? В любом случае, у меня всё по умолчанию.

Более того, когда сайт был на том же сервере, что и БД (только на другой виртуальной машине), то всё работало. А вот когда перенёс на свою - перестал User инициализироваться.

AxeleronНемоКэп42,

Перенос БД не поможет. А что там с authentication cookie? Создается?
Приду на работу - гляну.



Вообщ, как я так понимаю, User не должен быть null даже для неутентифицированного пользователя? Там же проверки идут IsAuthenticated, а их нельзя сделать, если User null, т. к. это поле User.
...
Рейтинг: 0 / 0
02.03.2015, 13:14
    #38892300
НемоКэп42
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
AxeleronНемоКэп42,

Перенос БД не поможет. А что там с authentication cookie? Создается?
Нет. Изначально я начинаю работать с сайтом как неаутентифицированный пользователь. Смотрю в браузере - куки нет (их и не должно быть на этом моменте). Жму на залогинивание и у меня в контроллере уже User == null. Естественно, никаких куки не успело создасться.

Я так понимаю, надо под дебагом смотреть в классе Controller, потому как в моём коде везде, где я могу добраться, User уже равен null.
...
Рейтинг: 0 / 0
02.03.2015, 13:19
    #38892307
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
НемоКэп42,

По-ходу, если код рабочий и просто перенос был на другую машину, то у Вас скорее всего Application Pool неверно отконфигурирован - сравните его с оригиналом (на машине где работает).
...
Рейтинг: 0 / 0
02.03.2015, 13:30
    #38892327
НемоКэп42
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
monstrUНемоКэп42,

а как у тебя запущен сайт? как сконфигурирована аутентификация?
вдруг у тебя все аутентификации выключены
Всё по-умолчанию. Т. е.:

- включена анонимная проверка подлинности;
- отключено ASP.NET Impersonation;
- включена проверка подлинности с помощью форм.



(лять! этот хренов русский язык! кто придумал назвать раздел аутентификации "проверкой подлинности", а impersonation перевести как "олицетворение"?! чтобы я ещё раз поставил что-то русскоязычное!!!)
...
Рейтинг: 0 / 0
02.03.2015, 13:32
    #38892332
НемоКэп42
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
AxeleronНемоКэп42,

По-ходу, если код рабочий и просто перенос был на другую машину, то у Вас скорее всего Application Pool неверно отконфигурирован - сравните его с оригиналом (на машине где работает).
Пул я тоже проверял - всё так же: версия фреймворка, встроенный конфеер. Вроде, там больше настроек нет толком.
...
Рейтинг: 0 / 0
02.03.2015, 13:33
    #38892335
НемоКэп42
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
НемоКэп42AxeleronНемоКэп42,

По-ходу, если код рабочий и просто перенос был на другую машину, то у Вас скорее всего Application Pool неверно отконфигурирован - сравните его с оригиналом (на машине где работает).
Пул я тоже проверял - всё так же: версия фреймворка, встроенный конфеер. Вроде, там больше настроек нет толком.
Ну, разве что я на один пул повесил второй сайт - копию этого, только с другой привязкой. Но при этом одновременно работает только один.
...
Рейтинг: 0 / 0
02.03.2015, 14:00
    #38892369
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
НемоКэп42,

Скорее всего пул неотконфигурирован. Проверьте. На одном пуле может несколько сайтов крутиться, но скорее в Вашем случае настройки аутентификации пула отличаются от настроек аутентификации сайта.
...
Рейтинг: 0 / 0
02.03.2015, 14:14
    #38892383
НемоКэп42
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
Проверил настройки на сервере, на котором аутентификация работает, и на моей машине, на которой не работает:

для пула приложений:

дополнительные параметры:

всё одинаково, кроме следующих настроек:

- загрузить профиль пользователя: false (сервер), true (моя машина).



Настройки аутентификации для сайта одинаковы что на сервере, что на моей машине.


Где ещё можно посмотреть настройки аутентификации для пула приложений, кроме как в "Дополнительные параметры"? Для сайтов есть "режим просмотра возможностей", а для пулов такого нет.
...
Рейтинг: 0 / 0
02.03.2015, 14:21
    #38892397
НемоКэп42
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
Вообще, я работаю с IIS 7.5 через ГУИ. Там есть "режим просмотра возможностей" для всего веб-сервера и для сайтов в отдельности. У меня для "проверки подлинности" так (одинаково и на моей машине, и на сервере):
...
Рейтинг: 0 / 0
02.03.2015, 14:23
    #38892399
НемоКэп42
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
Т. е. то, что отличаются настройки проверки подлинности для сервера и сайта, не мешает сайту на сервере нормально работать. Ну это и по замыслу должно быть так, ведь настройки для сервера это что-то типа родительские настройки для сайтов, и отдельные настройки для сайтов только переопределяют базовые настройки, которые для сервера.
...
Рейтинг: 0 / 0
02.03.2015, 16:13
    #38892561
monstrU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
НемоКэп42,

а как сконфигурирован пул под которым работают сайты ?
...
Рейтинг: 0 / 0
02.03.2015, 16:24
    #38892582
НемоКэп42
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
monstrUНемоКэп42,

а как сконфигурирован пул под которым работают сайты ?
А какие настройки вы конкретно имеет ввиду? Там много всего, но для пула это "Основные настройки" и "Дополнительные параметры". В основных у меня стоит версия дотнета 4.0, и встроенный конвеер. В дополнительных я нашёл только "загрузить профиль пользователя", который по умолчанию false, а у меня стоит в true. Всё остальное по-умолчанию.

Я так и не нашёл, где для пула приложений настраивается аутентификация - это, вроде, только для сайтов, а не для пулов?
...
Рейтинг: 0 / 0
02.03.2015, 16:25
    #38892583
НемоКэп42
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
НемоКэп42В дополнительных я нашёл только "загрузить профиль пользователя", который по умолчанию false, а у меня стоит в true.
Ну, я попробовал false - ничего не изменилось.
...
Рейтинг: 0 / 0
02.03.2015, 16:35
    #38892609
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
НемоКэп42Ну, я попробовал false - ничего не изменилось.
...
Рейтинг: 0 / 0
03.03.2015, 13:05
    #38893428
НемоКэп42
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
Axeleron,

у меня эта настройка такая же, как у вас. И на моей машине, и на сервере. Для сайтов (и на сервере, и на моей машине) стоит настройка

Основные настройки - Подключаться как... - Учётные данные пути: пользователь приложения (сквозная проверка подлинности).
...
Рейтинг: 0 / 0
03.03.2015, 13:18
    #38893463
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
НемоКэп42,

А сам пул выставлен как Classic или Integrated?
...
Рейтинг: 0 / 0
03.03.2015, 13:44
    #38893499
НемоКэп42
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
AxeleronНемоКэп42,

А сам пул выставлен как Classic или Integrated?
Integrated.

1. Вообще, я так понимаю, ответ может дать дебаг. Сейчас пытаюсь настроить так, чтобы при нажатии на F5 проект деплоился на IIS 7.5 и сразу там под дебагом запускался. Это возможно?

2. В моих классах явно нигде создание объекта User не происходит. В каком классе это происходит внутри ASP.NET MVC?
...
Рейтинг: 0 / 0
03.03.2015, 14:00
    #38893527
Axeleron
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
НемоКэп421. Вообще, я так понимаю, ответ может дать дебаг. Сейчас пытаюсь настроить так, чтобы при нажатии на F5 проект деплоился на IIS 7.5 и сразу там под дебагом запускался. Это возможно?

Да, конечно, так правильнее всего будет.

НемоКэп422. В моих классах явно нигде создание объекта User не происходит. В каком классе это происходит внутри ASP.NET MVC?

Он явно и не создается 'вручную'. У объекта User даже сеттера нет, чтобы это вручную сделать.
...
Рейтинг: 0 / 0
04.03.2015, 13:52
    #38894565
НемоКэп42
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
Вы будете смеяться, но надо было сделать

runAllManagedModulesForAllRequests="true"

До этого было false.

Писали где-то, что не рекомендуют делать true из-за производительности. Только вот, когда разрабатываешь, то, если не опытен, не знаешь, в каком месте затык будет, если не все модули включать. Так что, я думаю, когда разрабатываешь, надо всё включать, а потом уже, когда пошло развёртывание и борьба за производительность на сервере, то можно уже смотреть, что отключать, что включать. Я правильно думаю?
...
Рейтинг: 0 / 0
04.03.2015, 13:53
    #38894568
НемоКэп42
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
MVC 3 - Объект User равен null
Почему работало, когда в Dev Server деплоишь (т. е. жмёшь F5 в Студии) - там и так все модули запускаются.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / MVC 3 - Объект User равен null / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]