小编Gur*_*uru的帖子

ASP.NET OAuth存在URL重写问题

我的生产设置如下:

  • M1 - ASP.NET网站
  • M2 - IIS URL重写2.0 + ARR 3.0

使用IIS URL Rewrite,对M2的任何请求,例如http:// m2 /app/login.aspx将被重定向到M1,如http:// m1 /app/login.aspx.

在M1上,ASP.NET Open Auth已在网站上实施,以使用Google外部身份验证.当用户点击Google按钮时,浏览器将被重定向到Google登录页面以允许用户进行身份验证.

但是当从M2访问网站时,.net oAuth(https:// accounts.google.com/[query-string])生成的重定向网址将重定向到Google,正在被URL重写替换为http:// m2/[query-string].

所以要清楚; 当通过外部身份验证提供程序进行身份验证请求时,返回302重定向.通常这种形式可能如下所示:

响应标题:

...

位置:https:// accounts.google.com/o/oauth2/auth?big_long_query_string

...

此重定向由位于代理服务器后面的服务器(M1)创建(M2 - IIS URL Rewrite 2.0 + ARR 3.0).因此,重写服务器将Location标头重写为:

响应标题:

...

位置:http:// M1/o/oauth2/auth?big_long_query_string

...

我们需要的是一条规则,它不会在重定向时重写位置URL.它也只能针对某些重定向.大多数情况下,这里提到的行为是必需的,因为所有重定向都被重定向到主代理服务器.有人可以为某些重定向建议解决方案或解决方法吗?

asp.net oauth url-rewrite-module arr

14
推荐指数
1
解决办法
1540
查看次数

标签 统计

arr ×1

asp.net ×1

oauth ×1

url-rewrite-module ×1