设置AllowAutoRedirect = false仍然遵循重定向

时间:2017-01-20 19:07:02

标签: c# .net azure

我在本地开发了一个MVC控制器,它对URL执行请求并设置......一切都很好:

    var client = new RestClient(BaseUrl);
    client.IgnoreResponseStatusCode = false;

    var response = await client.Execute<T>(request);

    if (!response.IsSuccess)
    {
        //Custom Exception using response.StatusCode 
    }

当我在本地测试这一切都很好,我得到302重定向状态代码。 我在Azure(MVC服务)上部署了它,并且相同的代码以不同的方式运行:基本上它遵循重定向并且检索状态代码200.

1 个答案:

答案 0 :(得分:0)

根据您的描述,我在本地和Azure方面都测试了这个问题。以下是详细内容,您可以参考它并与您的方案进行比较。

/ Home / TestRedirect :对包含302重定向的网址执行请求。

public ActionResult TestRedirect(bool allowAutoRedirect=true)
{
    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create("http://bruce-chen-002.azurewebsites.net/home/doredirect");
    request.Method = "GET";
    request.AllowAutoRedirect = allowAutoRedirect;
    using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
    {
        string _response = new StreamReader(response.GetResponseStream()).ReadToEnd();
        return Content(_response);
    }
}

/ Home / DoRedirect 执行302重定向。

public ActionResult DoRedirect()
{
    return Redirect("https://azure.microsoft.com");
}

1.本地测试

AllowAutoRedirect=true

AllowAutoRedirect=false

注意:您可以捕获服务器端请求,因为该站点是由本地IIS服务器启动的。要确定是否重定向请求,您可以检查您上面发送的原始请求的响应。

2.在Azure Web App上测试

AllowAutoRedirect=true

AllowAutoRedirect=false

注意:为了捕获Azure中的重定向,您可以利用Application Insights,然后可以在Azure门户中的Application Insights的“概述&gt;搜索”刀片下检索它如下: