我想实现一个OAuth2Authorization Server
,我想通过DotNetOpenAuth.AspNet.Clients.OAuth2Client
在MVC 4 webclient项目中连接到它。
在我的SPA网络客户端中,我可以获得AccessToken
覆盖QueryAccessToken
OAuth2Client
{/ 1}}。
使用我的AccessToken
,我可以调用REST API服务并获得成功的结果作为用户额外数据。
....
HttpWebRequest apiRequest =
(HttpWebRequest)WebRequest.Create(".....://localhost:4314/api/TodoList");
DotNetOpenAuth.OAuth2.ClientBase.AuthorizeRequest(apiRequest, AccessToken);
....
但是,经过一段时间后,我的AccessToken
将过期并收到错误,因此我需要刷新AccessToken
以进行下一次REST服务调用。
如何在AccessToken
的方法中刷新OAuth2Client
?
是否可以使用ClientBase.RefreshAuthorization(....)
?
由于 甜瓜
答案 0 :(得分:2)
使用DotNetOpenAuth.AspNet
命名空间进行授权(对Web请求重复使用访问令牌)正在游向上游。该命名空间具有仅用于登录(身份验证)的客户端。
更适合您正在做的事情是使用WebServerClient
类,它是核心DotNetOpenAuth库的一部分。它会根据需要自动刷新访问令牌。