Всем привет! Я тут пишу первый раз, поэтому, возможно, нарушу какие-то правила — ногами не бейте.
У нас аутентификация на сайте прикладная. На уровне ISAPI стоит фильтр (DAF), который перехватывает запросы на аутентификацию и проверяет по SQL Server-ной базе имя и пароль.
Всё классно работает в ASP. Ацтентификация проходит и он (DAF) кладет в переменные сервера имя и пароль.
Проект наш потихоничку мигрирует на ASP.NET (Все новое уже на нем пишется), и иногда надо внутри ASP.NET-ных кодов запросить старые ASP-ные страницы (XML генерят).
В этом случае для данных аутентификации мы используем переменные сидящие на уровне сервера.
Все работает, пока не появляются умляуды (буковки aAoOuU с двумя точками "над головой") в login-ах или паролях. (дело в Германии происходит)
Тут мы и видим, что когда я считываю серверную переменную с именем из под ASP, то умляуды вижу, а когда из под ASP.NET, то о просто "вырезает" эти символы.
Напрашивается мысль про кодировки, но где чего ковырнуть — как-то никак не сообразится
Y>>Напрашивается мысль про кодировки, но где чего ковырнуть — как-то никак не сообразится G>В web.config у ASP.Net приложения в <globalization> что стоит, и какой collation в вашей базе?
Да вроде одинаковые windows-1252, но я проверю еще раз.
YA>>Latin1-General_CI_AS в базе, вполне мо поему "стыкуется" c windows-1252
G>А если попробовать поставить utf-8 в веб.конфиге?
так он и стоял по умолчанию.
Мы в итоге три кодировки попробовали:
utf-8
iso-8859-1 (Western European (ISO))
windows-1252 (Western European (Windows))
Меняли в web.config и machime.config. Не помогает.
в trace режиме вижу, что request и response кодировки меняются, но во и ныне там
Вообще ерунда какая-то! ASP.NET, на сколько я понимаю, так же как и ASP, оба считывают те же самые серверные переменные. Т.е. они вообще независимы. Я туда хоть PHP поставлю.
Почему же он (ASP.NET) отсекает нестандартные символы (ASP не отсекает)!?
Здравствуйте, Yuri Abele, Вы писали:
YA>Меняли в web.config и machime.config. Не помогает.
machine.config просто конфигурационный файл глобального масштаба, его не нужно трогать По крайней мере чем реже, тем лучше.
YA>в trace режиме вижу, что request и response кодировки меняются, но во и ныне там
значит, дело в чем-то другом
YA>Почему же он (ASP.NET) отсекает нестандартные символы (ASP не отсекает)!?
Видимо, не нравится что-то ему. Наверное, проще будет переписать авторизацию под асп.нет — это несложно.
YA>>Меняли в web.config и machime.config. Не помогает. G>machine.config просто конфигурационный файл глобального масштаба, его не нужно трогать По крайней мере чем реже, тем лучше.
Еще немного и я ядро начну перекомпилировать
Этот DAF на уровне всего сервера работает, вот я про machine.config И подумал. Но тоже не помогло.
YA>>в trace режиме вижу, что request и response кодировки меняются, но во и ныне там G>значит, дело в чем-то другом
В том, что эти имя и пароль в сервер попадают как надо, т.к. ASP их благополучно от туда считывает, а вот ASP.NET "кастрирует"
YA>>Почему же он (ASP.NET) отсекает нестандартные символы (ASP не отсекает)!? G>Видимо, не нравится что-то ему. Наверное, проще будет переписать авторизацию под асп.нет — это несложно.
Можно, но времени на это нет, к сожалению, да и не понятно, как будут уживаться в режиме "single login" два фрейма в одном окне, где один под DAF и "старым" ASP, а другой под нашей аутентификацией и ASP.NET