【问题标题】:Add Access-Control-Allow-Origin header in C#在 C# 中添加 Access-Control-Allow-Origin 标头
【发布时间】:2016-09-08 12:12:42
【问题描述】:

在以下代码中,如果请求来自特定域,我尝试添加 Access-Control-Allow-Origin 标头。

protected void Page_Load(object sender, EventArgs e)
{
    string origin = WebOperationContext.Current.IncomingRequest.Headers.Get("Host");
    if (origin.IndexOf("blabla.com" != -1) { 
    Response.AppendHeader("Access-Control-Allow-Origin", "*");
    }

}

我的问题出在这一行:

string origin = WebOperationContext.Current.IncomingRequest.Headers.Get("Host");

我得到以下异常:

异常信息:异常类型:NullReferenceException 异常消息:对象引用未设置为 对象。

我找不到我的代码有什么问题。 感谢您的帮助

【问题讨论】:

  • 你试过HttpContext.Current.Request.Url.Host吗?
  • 我认为 HttpContext.Current.Request.Url.Host 会给出请求页面的主机,而不是请求的主机
  • 啊,好吧,抱歉我没听懂。所以试试 HttpRequest.UserHostAddress msdn.microsoft.com/en-us/library/…
  • Request.UrlReferrer.Host 解决了我的问题
  • 我不知道您想要实现什么,但 URLRerrrer 并不“安全”,因为:“获取有关链接到当前 URL 的客户端先前请求的 URL 的信息。”所以它会改变!

标签: c# .net .net-3.5


【解决方案1】:

如果你有兴趣,有一个 HttpModule 可以添加到项目中
handle this for you.

您的代码的问题可能是调用时上下文为空。

【讨论】:

    猜你喜欢
    • 2011-06-27
    • 2016-07-03
    • 2016-01-11
    • 2018-10-28
    • 2017-12-16
    • 2012-09-19
    • 2019-02-07
    • 2013-01-07
    相关资源
    最近更新 更多