2012-04-20 57 views
0

我已經創建了一個使用DotNetOpenAuth將OAuth2 AuthorizationServer和ResourceServer一體化的項目。DotNetOpenAuth ResourceServer從本金獲取用戶ID

我想要做的就是使用OAuth作爲僞認證,其中客戶端通過OAuth授權獲取用戶配置文件的關聯資源。

在ResourceServer上,我可以使用resourceServer.VerifyAccess(request, out result); 成功返回IPrincipal。我的問題是:在ResourceServer(與授權服務器相同)上,如何從Principal(或者我有權訪問的任何其他東西)獲取用戶/用戶ID /用戶配置文件。主體名稱看起來像一個base64編碼的字符串。但這似乎不符合我所能訪問的任何其他內容。

回答

0

DotNetOpenAuth的ResourceServer.VerifyAccess方法爲您提供了一個委託人,其名稱是授予訪問令牌的用戶,其角色是授予該令牌的範圍。

如果您看到一些base64編碼的字符串將主體名稱視爲事物,這聽起來像您應該仔細檢查您的代碼。我建議你從授權服務器代碼中開始,你調用AuthorizationServer.PrepareApproveAuthorizationRequest傳遞授權用戶名。確保它是應該的。

這是非常不可能的,它在運輸過程中被破壞,因爲令牌被加密和簽名。