-
Notifications
You must be signed in to change notification settings - Fork 4.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
UrlUtility.GenerateOAuthCallbackUrl问题 #1392
Comments
已经提交了,你看下是不是你要的效果: (因为要考虑到更多的开发者环境,所以用了FormatWith) nuget发布了预览版:https://www.nuget.org/packages/Senparc.Weixin.MP/16.2.1-preview1 欢迎反馈结果 😄 |
谢谢,就是这个效果 |
刚才访问正常是缓存我之前编译的dll,重启机子发现还是带着端口 public static string GenerateOAuthCallbackUrl(HttpContextBase httpContext, string oauthCallbackUrl) { if (httpContext.Request.Url == null) {
|
#if NET35 || NET40 || NET45 。。。。。。。。。。。
。。。。。。。。。。。。 |
刚才测试改了两行就好了 |
刚才只改了MP,没有改Senparc.Weixin,其实我应该发布的是Senparc.Weixin.dll,稍等我重新发布一个 |
另外还有一个需要探讨的问题,就是你这个例子里面是不需要带端口,但是如果遇到有端口的情况(SDK必须考虑到更多的情况),你提供的方法是不是也会强制把端口忽略掉? |
或者你直接修改了PR到Developer分支一下吧?我看着有点乱…… |
对不起,给您添麻烦了 |
@teamssun 你的想法是要怎么改,直接PR过来一下我看一下吧(到Developer分支) |
问题描述
关于MVC使用UrlUtility.GenerateOAuthCallbackUrl问题
我的主机http://127.0.0.1:88反向代理解析到http://test.abc.cn后,
当使用[CustomOAuth(null, "/Account/OAuthCallback")]获取openid时,微信返回URI配置错误
分析:
用UrlUtility.GenerateOAuthCallbackUrl得到的网址是http://test.abc.cn:88
而urlData.Host、urlData.Port后台获取本地IIS主机名和端口,而非反向代理地址端口。
修改代码:
Senparc.Weixin.HttpUtility.UrlUtility 82行
var returnUrl = $"{httpContext.Request.Url.Scheme}://{httpContext.Request.Headers["Host"]}{(httpContext.Request.Url.PathAndQuery)}";
Senparc.Weixin.HttpUtility.UrlUtility 85行
var host = httpContext.Request.Headers["Host"];
var port = string.IsNullOrEmpty(httpContext.Request.Headers["Port"])?80:httpContext.Request.Headers["Port"].ToInt()
测试mvc+.net45
望采纳更新到NuGet新版本,免得升级还重新编译Senparc.Weixin :)
The text was updated successfully, but these errors were encountered: