Хорошее задание! У меня была та же самая проблема. Добавление и удаление модуля Сессии работали отлично на меня также. Это однако не возвращало HttpContext. Текущий. Пользователь, таким образом, я попробовал Ваш небольшой прием модулем FormsAuth и конечно же, который сделал это.
<remove name="FormsAuthentication" />
<add name="FormsAuthentication" type="System.Web.Security.FormsAuthenticationModule"/>
Don't have an elegant solution at this point but wanted to share my findings for the future reference of others who encounter this problem. The source of the problem was 2 overriden php values in an .htaccess file. I had simply added these 2 values to increase the filesize limit for file uploads from the default 8MB to something larger -- I observed that simply having these 2 values in the htaccess file at all, whether larger or smaller than the default, caused the issue.
php_value post_max_size xxMB
php_value upload_max_filesize xxMB
I added additional variables to hopefully raise the limits for all the suhosin.post.xxx/suhosin.upload.xxx vars but these didn't have any effect with this problem unfortunately.
In summary, I can't really explain the "why" here, but have identified the root cause. My feeling is that this is ultimately a suhosin/htaccess issue, but unfortunately one that I wasn't able to resolve other than to remove the 2 php overridden values above.
Hope this helps someone in the future as I killed a handful of hours figuring this out. Thanks to all who took the time to help me with this (MrMage, Andrew)
Убедитесь, что в php.ini:
track_vars
(доступно только в очень старых версиях PHP) установлено значение В
variables_order
содержит букву P
post_max_size
имеет разумное значение (например, 8 МБ) suhosin.post.max_vars
и suhosin .request.max_vars
достаточно велики. Полагаю, второе мое предложение решит вашу проблему.
Вот другая возможная причина - моя форма отправлялась на domain.com без WWW. и я настроил автоматическое перенаправление, чтобы добавить «WWW». Массив $ _POST в процессе опустошался. Чтобы исправить это, мне нужно было всего лишь отправить запрос на www.domain.com
ССЫЛКА: http://www.openjs.com/articles/ajax_xmlhttp_using_post.php
Мы собираемся внести некоторые изменения, поэтому метод POST будет используется при отправке запроса ...
var url = "get_data.php";
var params = "lorem=ipsum&name=binny";
http.open("POST", url, true);
//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
http.send(params);
Некоторые заголовки http должны быть установлены вместе с любым запросом POST. Итак, мы устанавливаем их в этих строках ...
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
http.setRequestHeader("Content-length", params.length);
http.setRequestHeader("Connection", "close");
С помощью вышеприведенных строк мы в основном говорим, что данные отправляются в формате отправки формы. Мы также указываем длину отправляемых нами параметров.
http.onreadystatechange = function() {//Call a function when the state changes.
if(http.readyState == 4 && http.status == 200) {
alert(http.responseText);
}
}
Мы установили обработчик для события изменения «состояние готовности». Это тот же обработчик, который мы использовали для метода GET. Здесь вы можете использовать http.responseText - вставить в div, используя innerHTML (AHAH), eval (JSON) или что-то еще.
http.send(params);
Наконец, мы отправляем параметры с запросом. Данный URL загружается только после вызова этой строки. В методе GET параметр будет нулевым значением. Но в методе POST данные для отправки будут отправлены как аргумент функции отправки. Переменная params была объявлена во второй строке как lorem = ipsum & name = binny
- поэтому мы отправляем два параметра - lorem и name со значениями ipsum и binny соответственно.