Internet Explorer, Safari, Opera удаляет хэш-значение из returnUrl - PullRequest
3 голосов
/ 07 октября 2011

Я хочу сохранить значение хеша в returnURL, когда пользователь отправляется на контроллер LogOn, но IE7-9 / Safari / Opera удаляет его.

Например, я пробую этот URL

http://localhost:18314/#&t={DA3DB617-F9A3-4668-93E6-BBB2E37B928F}

Пользователь не авторизован и отправлен на контроллер LogOn. Я получаю именно это в IE7-9, Safari, Opera:

http://localhost:18314/Login/LogOn?ReturnUrl=%2f

Но в FireFox и Chrome:

http://localhost:18314/Login/LogOn?ReturnUrl=%2f#&t={DA3DB617-F9A3-4668-93E6-BBB2E37B928F}

Почему и как исправить?!

Спасибо! : -)

Ответы [ 2 ]

1 голос
/ 21 октября 2013

Все после хэша не отправляется на сервер.Хорошо, что вы можете обмениваться файлами cookie между вашим кодом клиента и кодом сервера.У меня возникла та же проблема, и в итоге я добавил мое хеш-значение в один файл cookie

// Note that I am using 3rd part library for cookies
<script src="~/scripts/jquery-1.10.2.js"></script>
<script src="~/scripts/jquery.cookie.js"></script>
<script type="text/javascript">
    $(function () {
        var cookieKey = "MYHASH";
        $.removeCookie(cookieKey);
        $.cookie(cookieKey, window.location.hash, { expires: 7, path: '/' });
    })
</script>

Позже, когда я обрабатываю подключенного пользователя в значении моего контроллера Request.Cookies ["MYHASH"];даст мне хэш-значение, чтобы я мог перенаправить пользователя.Я уверен, что с некоторыми изменениями это может помочь вам решить проблему.

1 голос
/ 05 января 2012

Вы должны выйти из хэша, используя% 23

, поэтому:

?ReturnUrl=%2fFolder1#Hash

становится:

?ReturnUrl=%2fFolder1%23Hash

Протестировано в IE9.

...