DotNetOpenAuth并使用MVC 4刷新令牌

时间:2013-02-05 18:06:30

标签: asp.net-mvc asp.net-mvc-4 dotnetopenauth

我想实现一个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(....)

由于 甜瓜

1 个答案:

答案 0 :(得分:2)

使用DotNetOpenAuth.AspNet命名空间进行授权(对Web请求重复使用访问令牌)正在游向上游。该命名空间具有仅用于登录(身份验证)的客户端。

更适合您正在做的事情是使用WebServerClient类,它是核心DotNetOpenAuth库的一部分。它会根据需要自动刷新访问令牌。