加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 需要代理身份验证(Forefront TMG需要授权才能完成请求.拒

发布时间:2020-12-16 01:50:42 所属栏目:百科 来源:网络整理
导读:当我试图向Twitter发帖时,上述错误即将来临.如何摆脱这个错误? 堆栈跟踪如下: Exception = {“The remote server returned an error: (407) Proxy Authentication Required.”} ExceptionStatus = ProtocolError 码: private string GetOAuthUrl(){ IFlue
当我试图向Twitter发帖时,上述错误即将来临.如何摆脱这个错误?

堆栈跟踪如下:

Exception = {“The remote server returned an error: (407) Proxy Authentication Required.”} ExceptionStatus = ProtocolError

码:

private string GetOAuthUrl()
{
    IFluentTwitter twitter;

    //Override the callback url if one was entered
    if (CallbackUrl != null && CallbackUrl.Trim().Length > 0)
    {
        twitter = FluentTwitter.CreateRequest().Configuration.UseHttps().Authentication.GetRequestToken(ConsumerKey,ConsumerSecret,CallbackUrl);
    }
    else
    {
        twitter = FluentTwitter.CreateRequest().Configuration.UseHttps().Authentication.GetRequestToken(ConsumerKey,ConsumerSecret);
    }

    var response = twitter.Request();
    UnauthorizedToken UnauthorizedToken = response.AsToken();

    string AuthorizationUrl = FluentTwitter.CreateRequest().Authentication.GetAuthorizationUrl(UnauthorizedToken.Token);
    return AuthorizationUrl;
}

解决方法

如果流畅的twitter正在使用WebRequests,那么您需要使用以下代码为代理指定凭据:

System.Net.WebRequest.DefaultWebProxy.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;

这将告诉所有Web请求使用运行应用程序的用户的凭据来通过代理进行身份验证.

要使其工作,您需要将应用程序配置为在已授予代理服务器访问权限的服务帐户下运行.然后,您可以绑定此服务帐户,以便它具有尽可能少的权限来运行该服务.

如果您的应用程序需要在无权使用代理服务器的帐户下运行,您可以明确指定凭据,如下所示:

System.Net.NetworkCredential credentials = new System.Net.NetworkCredential("username","password","domain");
System.Net.WebRequest.DefaultProxy.Credentials = credentials;

这方面的缺点是您必须将这些凭据存储在某个位置,并且如果攻击者设法破坏了您的应用程序,则攻击者可以捕获这些凭据.在某些环境中,从安全角度来看,这是不可接受的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读