Gri*_*uev 7 c# asp.net-mvc dotnetopenauth asp.net-mvc-5
我有非常简单的代码,对我来说很好:
var url = System.Web.HttpContext.Current.Request.Url;
Uri callbackUrl = new System.Uri(url, "oAuth2CallBack");
var ub = new UriBuilder(callbackUrl);
// decodes urlencoded pairs from uri.Query to var
var httpValueCollection = HttpUtility.ParseQueryString(callbackUrl.Query);
httpValueCollection.Add(UrlArguments.Param, null);
// urlencodes the whole HttpValueCollection
ub.Query = httpValueCollection.ToString();
var authorizationRequest = OAuthClient.PrepareRequestUserAuthorization(new[] { "somedata" }, ub.Uri);
authorizationRequest.Send();
Run Code Online (Sandbox Code Playgroud)
我更新了OAuth的NuGet包并以这种方式重写代码:
var url = System.Web.HttpContext.Current.Request.Url;
Uri callbackUrl = new System.Uri(url, "oAuth2CallBack");
var ub = new UriBuilder(callbackUrl);
// decodes urlencoded pairs from uri.Query to var
var httpValueCollection = HttpUtility.ParseQueryString(callbackUrl.Query);
httpValueCollection.Add(UrlArguments.Param, null);
// urlencodes the whole HttpValueCollection
ub.Query = httpValueCollection.ToString();
var client = new WebServerClient(new AuthorizationServerDescription
{
TokenEndpoint = Configuration.OAuth2.TokenEndpoint,
AuthorizationEndpoint = Configuration.OAuth2.AuthorizationEndpoint,
},
clientIdentifier: Configuration.OAuth2.ClientIdentifier,
clientCredentialApplicator: ClientCredentialApplicator.PostParameter(
Configuration.OAuth2.ClientSecret));
var authorizationRequest = await client.PrepareRequestUserAuthorizationAsync(new[] { "somedata" }, ub.Uri);
await authorizationRequest.SendAsync();
Run Code Online (Sandbox Code Playgroud)
但PrepareRequestUserAuthorizationAsync抛出异常
"通过'DotNetOpenAuth.OAuth2.WebServerClient + d _3.MoveNext()'方法尝试访问方法'System.Collections.Generic.List`1..ctor()'失败."
问题是 DotNetOpenAuth.OAuth2.Client 从 WebApi nuget 包引用 System.Net.Http.Formatters 5.0。从 .NET 4.0/4.5 BCL 设置对 System.Net.Http.Formatters 4.0 的引用可以解决该问题,并且所有测试仍然通过。
请参阅 github 上的提交 https://github.com/rcollette/DotNetOpenAuth/commit/59fe1e820fc48df8bb079b210ac585974f8326f5
请参阅拉取请求 https://github.com/DotNetOpenAuth/DotNetOpenAuth/pull/350
| 归档时间: |
|
| 查看次数: |
487 次 |
| 最近记录: |