PostAsync 导致页面刷新

PostAsync is causing the page to refresh

加载时,我的登录页面确定查询参数是否为空。如果是,它会重定向到另一个页面,然后重定向回登录,但会提供查询参数。看起来像这样:

protected void Page_Load(object sender, EventArgs e) {
    if (Request.Params["code"] == null) {
        var authCodeUrl = ConfigurationManager.AppSettings["MyId.AuthCodeUrl"];
        Response.Redirect(authCodeUrl);
    }
    else {
        var code = Request.Params["code"];
        GetAuthResult(code);
    }
}

GetAuthResult 在 return 重定向后触发。在其中,它将 POST 发送到单独的 API 并期望获得 return 结果:

using (var client = new HttpClient()) {
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));

    var response = client.PostAsync(accessTokenUrl, new FormUrlEncodedContent(bodyData)).Result;
    if (!response.IsSuccessStatusCode) {
        throw new Exception("MyID auth failed", new Exception(response.ReasonPhrase));
    }
    var token = response.Content.ReadAsStringAsync().Result;
    return JsonConvert.DeserializeObject<MyIdAuthResult>(token);
}

您可以在下面的 GIF 中看到它的发生。当我越过第 43 行时,我希望检查第 44 行的结果。除了 Page_Load 再次触发。知道我做错了什么吗?

事实证明发生了错误,但由于我没有 try catch,页面似乎只是在刷新。实际问题是我访问的端点是 HTTPS,而框架版本试图使用 TLS 1.0。这可能不是最好的解决方案,但我在实例化 HttpClient 之前设置了安全协议并且它起作用了:

ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;