Проблема длины запроса OpenId в DotNetOpenAuth? - PullRequest
1 голос
/ 26 ноября 2010

Я использую DotnetOpenAuth, мне нужно передать некоторые данные с помощью SetCallbackArgument, но проблема в том, что некоторые поставщики openId, такие как http://pip.verisignlabs.com/ http://clickpass.com/public/username перенаправить на мой сайт со строкой запроса более 2048 символов, и IIS не может справиться с этим. Я получил 404 - Файл или каталог не найден. ошибка из-за того, что они перенаправляют слишком велико. Что мне делать в этом случае?

1 Ответ

0 голосов
/ 27 ноября 2010

В спецификации OpenID указано, что слишком большие ответы OpenID должны использовать форму POST вместо перенаправлений 301, что помогает избежать этой проблемы. Я не знаю, пренебрегает ли verisign или clickpass той частью спецификации или нет. Но в целом ваши аргументы обратного вызова должны быть короткими, чтобы избежать подобных проблем. И, конечно, если ваш аргумент обратного вызова очень велик, он никогда не будет работать, так как аргументы обратного вызова всегда должны быть в строке запроса.

Как правило, если вы хотите, чтобы большой бит данных был доступен при возврате пользователя, вы можете сохранить его в БД, в сеансе пользователя или в файле cookie и сохранить только небольшую ссылку на эти данные в аргументе обратного вызова.

Помните, что все в аргументе обратного вызова подлежит проверке пользователем, любой третьей стороной, если HTTPS не используется для всего этого, и даже возможным вмешательством. DNOA обеспечивает дополнительную защиту от несанкционированного доступа для аргументов обратного вызова, но не конфиденциальность.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...