设置ServiceStack从OpenAuth令牌请求身份验证

时间:2013-11-25 16:52:55

标签: oauth-2.0 servicestack dotnetopenauth

(这个问题可以看作是ServiceStack场景中关于OpenAuth与DotNetOpenAuth的这两篇StackOverflow帖子的后续内容:firstsecond

据我所知,ServiceStack使用IAuthSession来了解哪个用户已通过身份验证,但这似乎依赖于HTTP会话cookie。使用OAuth请求时,不存在此类Cookie。

问题:如果1)存在浏览器cookie,或者2)存在OAuth身份验证标头 Bearer ,我希望我的ServiceStack请求被视为已通过身份验证。我该怎么做?

我尝试了以下设置线程的身份验证,但它依赖于ASP.NET的HttpContext.Current.User

我也希望它能同时用于IIS托管和自托管方案......

var analyzer = new StandardAccessTokenAnalyzer((RSACryptoServiceProvider)signCert.PublicKey.Key, (RSACryptoServiceProvider)encryptCert.PrivateKey);
var resourceServer = new ResourceServer(analyzer);
var requestWrapper = new HttpRequestWrapper((HttpRequest)request.OriginalRequest);

var principal = resourceServer.GetPrincipal(requestWrapper, requiredScopes);
HttpContext.Current.User = principal;

感谢任何帮助。

0 个答案:

没有答案