2013-11-21 2 views
1

Я пытаюсь добавить поставщика OAuth2 для Google к доказательству концептуального приложения, созданного на ServiceStack, однако я продолжаю получать следующую ошибку, когда пытаюсь инициировать логин ...servicestack oauth2 аутентификация Google не работает для самозваных сайтов

This method requires a current HttpContext. Alternatively, use an overload of this method that allows you to pass in information without an HttpContext`enter code here` 

[Auth: 11/21/2013 10:29:25 PM]: [REQUEST: {provider:googleoauth}] System.InvalidOperationException: This method requires a current HttpContext. Alternatively, use an overload of this method that allows you to pass in information without an HttpContext. at DotNetOpenAuth.Requires.ValidState(Boolean condition, String message) at DotNetOpenAuth.Messaging.Channel.GetRequestFromContext() at DotNetOpenAuth.OAuth2.WebServerClient.ProcessUserAuthorization(HttpRequestBase request) at ServiceStack.Authentication.OAuth2.OAuth2Provider.Authenticate(IServiceBase authService, IAuthSession session, Auth request) at ServiceStack.ServiceInterface.Auth.AuthService.Authenticate(Auth request, String provider, IAuthSession session, IAuthProvider oAuthConfig) at ServiceStack.ServiceInterface.Auth.AuthService.Post(Auth request) at ServiceStack.ServiceInterface.Auth.AuthService.Get(Auth request) at lambda_method(Closure , Object , Object) at ServiceStack.ServiceHost.ServiceRunner`1.Execute(IRequestContext requestContext, Object instance, TRequest request) 

Я также скачал демо-приложение SocialBootstrapApi и добавил поставщика Google oauth2 к нему и был в состоянии заставить его работать. Я скопировал конфигурацию из файла web.config в файл app.config собственного проекта, но он все еще не работает.

Любая помощь будет замечательной!

Спасибо за помощь.

ответ

0

ServiceStack.AuthWeb.Tests является ASP.NET WebHost, показывающий all the ServiceStack AuthProviders, работающий в одном приложении.

Примечание. Поставщики OAuth2 используют дополнительную конфигурацию, указанную в Web.config, которая требует, чтобы вы зарегистрировали свое приложение, чтобы получить свой потребительский ключ и секрет для своего приложения. В целях тестирования вы можете использовать ключи TestStack Test, уже встроенные в Web.config.

OAuth2 section in the Authentication wiki содержит ссылки, в которых вы можете зарегистрировать свое приложение для каждого провайдера.

+0

Я отмечаю это правильно ... потому что технически это так. Тем не менее, я все еще не могу заставить oauth2 работать в самообслуживаемом приложении, используя служебную программу. Он отлично работает, когда вы используете его с веб-приложениями. Если вы знаете какие-либо проекты, которые сделали это, вы могли бы их передать. Возможность размещения служебных программ в качестве самостоятельного приложения является ключом к моей общей архитектуре. – Dan

+1

@ Дань Да, я обнаружил, что DotNetOpenAuth не работает должным образом, когда он размещен в самообслуживаемом HttpListener, поэтому все, что требует DNOA для работы, например. Поддержка OAuth2 ограничена хостами ASP.NET в это время. Добавьте [запрос функции] (http://servicestack.uservoice.com/forums/176786-feature-requests), если вы хотите, чтобы это было исследовано дальше. – mythz

Смежные вопросы