如何在DotNetOpenAuth中检查范围

时间:2013-02-24 22:17:19

标签: dotnetopenauth

在我的DotNetOpenAouth客户端应用程序中,我通过发送

获取授权代码/令牌

AuthorizationEP + "?client_id=" + _appId + "&redirect_uri=" + HttpUtility.UrlEncode(returnUrl.ToString()) + "&scope=http://localhost:4314/api/domains" + "&response_type=code"

然后,我正确地收到了http://localhost:4314/api/domains范围的身份验证令牌。

但是,当我通过http://localhost:4314/api/domains.jsonhttp://localhost:4314/api/domains.xml URL调用我的Restful api时,指定的范围不适合我的资源服务器会在resourceServer.GetPrincipal中抛出异常。

如何在不考虑网址中的“.json”或“.xml”的情况下检查我的范围?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

我解决了。

我已经实施了

 internal class ScopeSatisfiedCheck : IScopeSatisfiedCheck
     {
         public bool IsScopeSatisfied(HashSet<string> requiredScope, HashSet<string> grantedScope)
         {
             // Here compare requiredScope with grantedScope by own rules;
         }
     }

....

resourceServer.ScopeSatisfiedCheck = new ScopeSatisfiedCheck();

我希望有用

甜瓜