2013-11-21 3 views
1

Google 용 OAuth2 제공자를 ServiceStack에 구축 된 개념 증명 애플리케이션에 추가하려고 시도했지만 로그인을 시도 할 때 다음 오류가 계속 발생합니다 ... servicestack oauth2 자체 인증 사이트에서 oauth2 인증이 작동하지 않습니다.

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을 다운로드 여기에 구글의 OAuth2 제공자를 추가하고 작업을 얻을 수있었습니다했습니다. web.config의 설정을 자체 호스팅 프로젝트의 app.config 파일에 복사했지만 여전히 작동하지 않습니다.

도움이 될 것입니다.

도움 주셔서 감사합니다.

답변

0

ServiceStack.AuthWeb.Testsall the ServiceStack AuthProviders이 하나의 응용 프로그램 내에서 작동하는 ASP.NET WebHost입니다.

OAuth2 제공자는 Web.config에 지정된 추가 구성을 사용합니다. 앱에 대한 소비자 키와 비밀을 얻기 위해 자신의 응용 프로그램을 등록해야합니다. 테스트를 위해 Web.config에 이미 포함 된 ServiceStack Test 키를 사용할 수 있습니다.

OAuth2 section in the Authentication wiki은 각 공급자에 대해 신청서를 등록 할 수있는 URL을 제공합니다.

+0

기술적으로 이것이 올바른 것으로 표시하고 있습니다. 그러나, 나는 servicestack을 사용하여 자체 호스팅 응용 프로그램에서 작동하도록 oauth2를 얻을 수 없습니다. 웹 호스팅 앱과 함께 사용할 때 완벽하게 작동합니다. 만약 당신이 거기 밖으로 프로젝트를 알고 당신이 그들을 따라 전달할 수 있습니다. 독립 실행 형 응용 프로그램으로 servicestack을 호스팅 할 수 있다는 것이 내 전반적인 아키텍처의 핵심입니다. – Dan

+1

@ Dan 예 DotNetOpenAuth가 자체 호스팅 HttpListener에서 호스트 될 때 DotNetOpenAuth가 제대로 작동하지 않는다는 것을 알았습니다. 따라서 DNOA가 필요한 모든 것이 작동합니다. 현재 지원되는 OAuth2는 ASP.NET 호스트로 제한됩니다. 더 자세히 조사하려면 [feature request] (http://servicestack.uservoice.com/forums/176786-feature-requests)를 추가하십시오. – mythz