Closed farleigh closed 10 years ago
It would seems that mono's HttpQSCollection
class doesn't URL-encode parameter values, while Microsoft's implementation does.
Mono should probably fix their implementation. I can't just URL-encode things on my side, or it will double the encoding effect. I suppose I could rewrite BuildUri
to not use HttpUtility
.
Deployed in version 1.1.2
I'm seeing an issue in Mono (mono 3.4.0, env: Ubuntu 14.04, nginx 1.6.0, mono-fastcgi-server4) where Google does not return the name of the provider when redirects to the
returnUrl
provided by DotNetOpenAuth.GoogleOAuth2I traced the issue down to a difference in how Mono vs. the Microsoft .Net runtime seems to be url-encoding values in
HttpValueCollection.ToString()
.DotNetOpenAuth.GoogleOAuth2.GoogleOAuth2Client.GetServiceLoginUrl
calls static methodBuildUri
.BuildUri()
creates a newHttpValueCollection
viaHttpUtility.ParseQueryString(string.Empty)
, adds parameters to it, and then calls aToString
on it. At this point, the difference occurs.To show this difference:
Running in Microsoft .Net runtime outputs:
Running in Mono (3.4.0) runtime outputs:
I filed a bug for the mono team (bug 22557), but may also be worth fixing here also.