Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 当与我们的身份验证服务器通信时,一个特定用户的403被禁止_C#_Http Headers_Http Status Codes - Fatal编程技术网

C# 当与我们的身份验证服务器通信时,一个特定用户的403被禁止

C# 当与我们的身份验证服务器通信时,一个特定用户的403被禁止,c#,http-headers,http-status-codes,C#,Http Headers,Http Status Codes,一个特定用户在与我们的身份验证服务器通信时遇到问题。因此,我决定向他请求一些诊断信息,主要是通过向我们发送他在与我们的身份验证服务器通话时收到的状态代码(该特定地址为) 标头请求代码包含一个cookie容器,用于存储有关此会话的信息,并且不允许重定向(这是故意的): List headers=newlist(); HttpWebRequest webRequest=(HttpWebRequest)webRequest.Create(url); webRequest.CookieContainer

一个特定用户在与我们的身份验证服务器通信时遇到问题。因此,我决定向他请求一些诊断信息,主要是通过向我们发送他在与我们的身份验证服务器通话时收到的
状态代码
(该特定地址为)

标头请求代码包含一个cookie容器,用于存储有关此会话的信息,并且不允许重定向(这是故意的):

List headers=newlist();
HttpWebRequest webRequest=(HttpWebRequest)webRequest.Create(url);
webRequest.CookieContainer=新CookieContainer();
webRequest.AllowAutoRedirect=false;
使用(HttpWebResponse webResponse=(HttpWebResponse)webRequest.GetResponse())
{
添加(“状态代码:”+(int)webResponse.StatusCode);
添加(“状态描述:+webResponse.StatusDescription”);
foreach(webResponse.Headers.Keys中的字符串键)
{
如果(!key.ToString().Equals(“位置”))
{
var value=webResponse.Headers[key];
headers.Add(键+“:”+值);
}
}
}
所需的输出应该是找到的
302
,因为我们将试图访问除
xxxxxxxx.com以外的任何内容的人重定向回主域

这是用户收到的输出:

根据状态代码文档,
禁止
表示:

服务器理解请求,但拒绝满足请求。授权没有帮助,请求不应重复。如果请求方法不是HEAD,并且服务器希望公开请求未得到满足的原因,那么它应该在实体中描述拒绝的原因。如果服务器不希望将此信息提供给客户端,则可以使用状态代码404(未找到)。

由于这是唯一一个出现此问题的用户,我们知道问题不在于我们的服务器,而可能与此特定问题在其服务器中的防火墙配置有关


我想知道在这一点上我能做些什么来帮助这个用户改善这个
403
错误?

我会让他在使用你的应用程序时运行Fiddler()会话,然后将结果发送给你。根据经验,为了让用户使用,Fiddler花费了我太多的配置。HTTPS证书部分(需要接受该对话框)让我不愿意让用户使用。还有别的办法吗?
List<string> headers = new List<string>();
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
webRequest.CookieContainer = new CookieContainer();
webRequest.AllowAutoRedirect = false;

using (HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse())
{
    headers.Add("Status Code: " + (int)webResponse.StatusCode);
    headers.Add("Status Desc: " + webResponse.StatusDescription);
    foreach (string key in webResponse.Headers.Keys)
    {
        if (!key.ToString().Equals("Location"))
        {
            var value = webResponse.Headers[key];
            headers.Add(key + ": " + value);
        }
    }
}