Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
Неаутентифицированный пользователь пытается зайти на страницу залогинивания. Получаю исключение NullReferenceException. В методе LogOn у меня всё стандартно (при этом сама схема залогинивания тоже стандартная - взял с предлагаемой по умолчанию в шаблоне проекта ASP.NET MVC) Код: c# 1. 2. 3. 4. 5. 6. Удалось установить, что объект User равен null. Как такое может быть? При этом контекст (HttpContext) существует. Вообще, при любом запросе - на регистрацию, ещё где-то - где идёт обращение к User, неаутентифицированный пользователь равен null. С аутентифицированным не пробовал - не знаю, как такую ситуацию смоделировать, если не могу залогониться. Да, при этом я нахожусь в домене. И сайт запущен у меня на рабочей машине. А база дынных с пользователями - на сервере на виртуальной машине. Это может влиять? Штука в том, что другие запросы к этой же БД идут нормально - всё, что не касается User, из БД вытаскивает и на сайте показывается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2015, 17:08 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
Раньше у меня всё работало, когда не было домена или когда сайт был запущен на том же сервере, на котором БД крутятся. Я пока не пробовал перенести БД к себе на машину - может, что-то изменится. Попозже попробую. В интернете как-то непонятно решают эту проблему 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2015, 17:14 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
НемоКэп42, Перенос БД не поможет. А что там с authentication cookie? Создается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2015, 17:28 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
НемоКэп42, а как у тебя запущен сайт? как сконфигурирована аутентификация? вдруг у тебя все аутентификации выключены ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2015, 11:35 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
monstrUНемоКэп42, а как у тебя запущен сайт? как сконфигурирована аутентификация? вдруг у тебя все аутентификации выключены Да, в IIS запущено всё. Насчёт как сконфигурирована аутентификация - это где посмотреть? В любом случае, у меня всё по умолчанию. Более того, когда сайт был на том же сервере, что и БД (только на другой виртуальной машине), то всё работало. А вот когда перенёс на свою - перестал User инициализироваться. AxeleronНемоКэп42, Перенос БД не поможет. А что там с authentication cookie? Создается? Приду на работу - гляну. Вообщ, как я так понимаю, User не должен быть null даже для неутентифицированного пользователя? Там же проверки идут IsAuthenticated, а их нельзя сделать, если User null, т. к. это поле User. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2015, 04:59 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
AxeleronНемоКэп42, Перенос БД не поможет. А что там с authentication cookie? Создается? Нет. Изначально я начинаю работать с сайтом как неаутентифицированный пользователь. Смотрю в браузере - куки нет (их и не должно быть на этом моменте). Жму на залогинивание и у меня в контроллере уже User == null. Естественно, никаких куки не успело создасться. Я так понимаю, надо под дебагом смотреть в классе Controller, потому как в моём коде везде, где я могу добраться, User уже равен null. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2015, 13:14 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
НемоКэп42, По-ходу, если код рабочий и просто перенос был на другую машину, то у Вас скорее всего Application Pool неверно отконфигурирован - сравните его с оригиналом (на машине где работает). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2015, 13:19 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
monstrUНемоКэп42, а как у тебя запущен сайт? как сконфигурирована аутентификация? вдруг у тебя все аутентификации выключены Всё по-умолчанию. Т. е.: - включена анонимная проверка подлинности; - отключено ASP.NET Impersonation; - включена проверка подлинности с помощью форм. (лять! этот хренов русский язык! кто придумал назвать раздел аутентификации "проверкой подлинности", а impersonation перевести как "олицетворение"?! чтобы я ещё раз поставил что-то русскоязычное!!!) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2015, 13:30 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
AxeleronНемоКэп42, По-ходу, если код рабочий и просто перенос был на другую машину, то у Вас скорее всего Application Pool неверно отконфигурирован - сравните его с оригиналом (на машине где работает). Пул я тоже проверял - всё так же: версия фреймворка, встроенный конфеер. Вроде, там больше настроек нет толком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2015, 13:32 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
НемоКэп42AxeleronНемоКэп42, По-ходу, если код рабочий и просто перенос был на другую машину, то у Вас скорее всего Application Pool неверно отконфигурирован - сравните его с оригиналом (на машине где работает). Пул я тоже проверял - всё так же: версия фреймворка, встроенный конфеер. Вроде, там больше настроек нет толком. Ну, разве что я на один пул повесил второй сайт - копию этого, только с другой привязкой. Но при этом одновременно работает только один. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2015, 13:33 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
НемоКэп42, Скорее всего пул неотконфигурирован. Проверьте. На одном пуле может несколько сайтов крутиться, но скорее в Вашем случае настройки аутентификации пула отличаются от настроек аутентификации сайта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2015, 14:00 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
Проверил настройки на сервере, на котором аутентификация работает, и на моей машине, на которой не работает: для пула приложений: дополнительные параметры: всё одинаково, кроме следующих настроек: - загрузить профиль пользователя: false (сервер), true (моя машина). Настройки аутентификации для сайта одинаковы что на сервере, что на моей машине. Где ещё можно посмотреть настройки аутентификации для пула приложений, кроме как в "Дополнительные параметры"? Для сайтов есть "режим просмотра возможностей", а для пулов такого нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2015, 14:14 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
Вообще, я работаю с IIS 7.5 через ГУИ. Там есть "режим просмотра возможностей" для всего веб-сервера и для сайтов в отдельности. У меня для "проверки подлинности" так (одинаково и на моей машине, и на сервере): ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2015, 14:21 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
Т. е. то, что отличаются настройки проверки подлинности для сервера и сайта, не мешает сайту на сервере нормально работать. Ну это и по замыслу должно быть так, ведь настройки для сервера это что-то типа родительские настройки для сайтов, и отдельные настройки для сайтов только переопределяют базовые настройки, которые для сервера. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2015, 14:23 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
НемоКэп42, а как сконфигурирован пул под которым работают сайты ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2015, 16:13 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
monstrUНемоКэп42, а как сконфигурирован пул под которым работают сайты ? А какие настройки вы конкретно имеет ввиду? Там много всего, но для пула это "Основные настройки" и "Дополнительные параметры". В основных у меня стоит версия дотнета 4.0, и встроенный конвеер. В дополнительных я нашёл только "загрузить профиль пользователя", который по умолчанию false, а у меня стоит в true. Всё остальное по-умолчанию. Я так и не нашёл, где для пула приложений настраивается аутентификация - это, вроде, только для сайтов, а не для пулов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2015, 16:24 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
НемоКэп42В дополнительных я нашёл только "загрузить профиль пользователя", который по умолчанию false, а у меня стоит в true. Ну, я попробовал false - ничего не изменилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2015, 16:25 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
НемоКэп42Ну, я попробовал false - ничего не изменилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.03.2015, 16:35 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
Axeleron, у меня эта настройка такая же, как у вас. И на моей машине, и на сервере. Для сайтов (и на сервере, и на моей машине) стоит настройка Основные настройки - Подключаться как... - Учётные данные пути: пользователь приложения (сквозная проверка подлинности). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 13:05 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
НемоКэп42, А сам пул выставлен как Classic или Integrated? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 13:18 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
AxeleronНемоКэп42, А сам пул выставлен как Classic или Integrated? Integrated. 1. Вообще, я так понимаю, ответ может дать дебаг. Сейчас пытаюсь настроить так, чтобы при нажатии на F5 проект деплоился на IIS 7.5 и сразу там под дебагом запускался. Это возможно? 2. В моих классах явно нигде создание объекта User не происходит. В каком классе это происходит внутри ASP.NET MVC? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 13:44 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
НемоКэп421. Вообще, я так понимаю, ответ может дать дебаг. Сейчас пытаюсь настроить так, чтобы при нажатии на F5 проект деплоился на IIS 7.5 и сразу там под дебагом запускался. Это возможно? Да, конечно, так правильнее всего будет. НемоКэп422. В моих классах явно нигде создание объекта User не происходит. В каком классе это происходит внутри ASP.NET MVC? Он явно и не создается 'вручную'. У объекта User даже сеттера нет, чтобы это вручную сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2015, 14:00 |
|
||
|
MVC 3 - Объект User равен null
|
|||
|---|---|---|---|
|
#18+
Вы будете смеяться, но надо было сделать runAllManagedModulesForAllRequests="true" До этого было false. Писали где-то, что не рекомендуют делать true из-за производительности. Только вот, когда разрабатываешь, то, если не опытен, не знаешь, в каком месте затык будет, если не все модули включать. Так что, я думаю, когда разрабатываешь, надо всё включать, а потом уже, когда пошло развёртывание и борьба за производительность на сервере, то можно уже смотреть, что отключать, что включать. Я правильно думаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.03.2015, 13:52 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=38890364&tid=1356668]: |
0ms |
get settings: |
9ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
51ms |
get topic data: |
14ms |
get forum data: |
4ms |
get page messages: |
84ms |
get tp. blocked users: |
2ms |
| others: | 232ms |
| total: | 421ms |

| 0 / 0 |
