Результат присвоения
x = x++;
не определен в C и C++ , и я предположил бы то же с C# также.
Так, фактическая последовательность операций, которая происходит, зависят от того, как компилятор решает к реализациям его, нет никакой гарантии, произойдут ли присвоение или инкремент сначала. (это четко определено в C#, как Jon Skeet указал в комментариях. Хотя я теперь чувствую, что этот ответ имеет намного меньше ценности теперь, я остаюсь на этом посту, восстановленном после удаления для вопроса OP и его ответа в комментариях.)
Однако в этом случае, это появляется последовательность операций, которая происходит:
Таким образом, хотя инкремент происходит, это настигает присвоение со старым значением, таким образом сохраняя x в 10.
HTH
Используйте параметр openid.claimed_id
в качестве логического первичного ключа для пользователей. Считайте его чувствительным к регистру и используйте полное значение . Не не обрезать фрагмент или схему (протокол). Считайте протоколы http: // и https: // совершенно разными, даже если остальная часть URL-адреса одинакова. Короче говоря, трактуйте openid.claimed_id
как непрозрачное значение.
которые должны полностью храниться для новых пользователей и полностью соответствовать для вернувшихся пользователей.
Спецификация OpenID 2.0 объясняет более подробно, но краткий ответ приведен выше.
Вы всегда должны сохранять каноническую форму OpenID, которую пользователь предоставил в качестве входных данных из-за делегирования OpenID.
В вашем случае похоже, что заявленная личность имеет идентификатор фрагмента в конце, который является не имеет отношения к процессу OpenID.