【问题标题】:Redirect to another site with Authorization headers in ASP. Net使用 ASP 中的授权标头重定向到另一个站点。网
【发布时间】:2019-01-15 10:40:05
【问题描述】:
我正在编写一个简单的 ASP.Net 应用程序(Web 窗体)。我试图实现当用户登陆我的页面时,我需要使用授权 JWT 令牌将他们重定向到另一个站点页面。我正在尝试使用以下代码。
Response.AddHeader("Authorization", "Bearer " + jwtToken);
Response.Redirect("https://sitename/index.aspx");
Response.End();
我看不到页面中的标题还是我做错了?谁能帮我解决这个问题?
【问题讨论】:
标签:
c#
asp.net
redirect
authorization
【解决方案1】:
当您使用 Response.Redirect 时,标头信息不会传递到新 URL。
您在 response.redirect 之前添加的标头,它不会添加到新请求中。
仅当您的网站托管在 IIS(v7 或更高版本)中时,在 Response.Redirect 期间添加新标头的支持有限。
您可以在 system.webServer 配置部分配置自定义标头。这些将在 IIS 将用户重定向到某个 URL 时添加。
我认为我们不能放置任何动态值(例如用户令牌)。
注意:如果您要转移到同一组织拥有的另一个应用程序(共享基础设施),那么您可以将此不记名令牌保存在缓存中(其中密钥将在GUID),然后将 GUID 作为查询字符串发送到其他应用程序。其他应用程序可以读取查询字符串并从缓存中检索令牌。同样,这取决于您的项目/产品的高级设计。
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="X-Frame-Options" value="SAMEORIGIN" />
<add name="X-XSS-Protection" value="1; mode=block" />
<add name="X-Content-Type-Options" value="nosniff" />
<add name="Strict-Transport-Security" value="max-age=31536000; includeSubDomains" />
<remove name="X-Powered-By" />
</customHeaders>
</httpProtocol>
</system.webServer>