Измените
public void specificPaint(int coordinateX, int coordinateY, Color color)
на
public void specificPaint(int coordinateX, int coordinateY, Color color, Graphics g)
Затем вызовите specificPaint
внутри вашего метода paintComponent
с объектом Graphics
, который вы рисуете с помощью
См. ответ Hovercraft для более подробной информации о том, почему использование this.getGraphics()
не работает
Проблема, которую Вы видите, не уникальна для OpenID. Любая схема аутентификации пароля меньше может иметь эту проблему. OAuth ( http://oauth.net/ ) является решением, которое является открытым стандартом, который быстро наращивает обороты на большом количестве веб-сайтов. Это полностью независимо от того, как пользователь проходит проверку подлинности, таким образом, их Поставщик OpenID делает не потребность поддерживать или даже знать, что Ваш сайт ("поставщик услуг" в терминах OAuth) использует OAuth. Ваш клиент API может быть веб-или даже локальное приложение!
процесс был бы чем-то вроде этого:
Роли:
Поток:
, Очевидно, я не могу включать целую спецификацию OAuth здесь, но Вы видите, надо надеяться, от вышеупомянутого, что это должно решить Вашу проблему. Библиотеки OAuth существуют для создания добавляющей поддержки его легкой.
, Если Вы, оказывается, используете ASP.NET, я предлагаю http://dotnetopenid.googlecode.com/ , поскольку это недавно добавило поддержку OAuth (v3.0 бета 1).
То, что Вы хотите, не возможно с OpenID. OpenID основан на предпосылке, что Вы (приложение для iPhone) только хотите знать о своих пользователях, что их OpenID-поставщик доверяет им. Они никогда не аутентифицируют себя в Вас.
Хорошие OpenID-поставщики на самом деле даже предотвращают , что Вы добиваетесь процесса аутентификации (поскольку это подвергло бы пользователей возможному нападению - Вами!): они требуют, чтобы пользователи вошли в систему с ними непосредственно и отказались от входа в систему направлением.
См.: этот связанный вопрос
проблема состоит в том, что открытая спецификация не имеет никакого стандартного условия для аутентификации с поставщиком, таким образом, поставщик может выбрать ту аутентификацию, происходит через телефонный вызов или что бы то ни было.
, Надо надеяться, больше поставщиков OAuth объятия. Кроме того, Вы могли вручить коду аутентификацию для нескольких больших сайтов.
Ни OpenID, ни OAuth не определяют способ аутентификации пользователя. Они определяют, как потребитель направляет пользовательский агент к провайдеру аутентификации, как пользовательский агент направляется обратно, и как потребитель может проверить идентичность, под которой аутентифицировался пользователь.
Фактический метод, используемый для аутентификации, не является допустимым для обе схемы.
Между OpenID и OAuth есть различия, но оба требуют, чтобы потребитель использовал перенаправления HTTP и URL-адреса обратного вызова. Оба они основаны на браузере. Если ваше приложение поддерживает HTTP, оно может и то, и другое. Однако главное заключается в том, что пользователь вводит учетные данные только в доверенное приложение.
но оба требуют, чтобы потребитель использовал перенаправления HTTP и URL-адреса обратного вызова. Оба они основаны на браузере. Если ваше приложение поддерживает HTTP, оно может и то, и другое. Однако главное заключается в том, что пользователь вводит учетные данные только в доверенное приложение. но оба требуют, чтобы потребитель использовал перенаправления HTTP и URL-адреса обратного вызова. Оба они основаны на браузере. Если ваше приложение поддерживает HTTP, оно может и то, и другое. Однако главное заключается в том, что пользователь вводит учетные данные только в доверенное приложение.