php翻译至c#的错误

bruce_figo 2012-05-31 02:36:02
我有一段php的代码示例,需要翻译到C#,我自己翻译后,服务器始终提示401 未经验证,我对php不熟悉
各位请看一下我翻译的是否正确,这些curl中的参数意思我不是很明白。非常感谢!。

//Connection Resource
$resource_uri = 'https://app.test.com/test.xml'

//Setup connection
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $resource_uri);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_USERPWD, $username . ":" . $password);
curl_setopt($curl, CURLOPT_TIMEOUT, 15);
curl_setopt($curl, CURLOPT_VERBOSE, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($curl, CURLOPT_FAILONERROR, 0);

//Send request
$result_json = curl_exec($curl);
curl_close($curl);

//Done
print_r($result_json);




我写的c#代码


private bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
{
return true;
}


protected void Page_Load(object sender, EventArgs e)
{
string uri = "https://app.test.com/test.xml";

ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "GET";
NetworkCredential credential = new NetworkCredential(username, password);
request.Credentials = credential;

HttpWebResponse response = null;
try
{
response = (HttpWebResponse)request.GetResponse();
}
catch (Exception ex)
{
if (response != null)
{
response.Close();
response = null;
}
Response.Write(ex.Message);
return;
}
}
...全文
115 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnfixit 2012-05-31
  • 打赏
  • 举报
回复
分享一下你的解决办法吧

ps:你的名字好给力
bruce_figo 2012-05-31
  • 打赏
  • 举报
回复
谢谢各位,我已找到问题所在
cnfixit 2012-05-31
  • 打赏
  • 举报
回复
http://blog.csdn.net/liehuo123/article/details/6101221
cnfixit 2012-05-31
  • 打赏
  • 举报
回复
http://www.cnblogs.com/Jin-1007/archive/2012/04/13/2445596.html

这个貌似和你的情况很像
cnfixit 2012-05-31
  • 打赏
  • 举报
回复
CURLOPT_SSL_VERIFYPEER FALSE to stop cURL from verifying the peer's certificate. Alternate certificates to verify against can be specified with the CURLOPT_CAINFO option or a certificate directory can be specified with the CURLOPT_CAPATH option.


NetworkCredential 类是为基于密码的身份验证方案(如基本、简要、NTLM 和 Kerberos)提供凭据的基类。实现 ICredentials 接口的类(如 CredentialCache 类)返回 NetworkCredential 对象。

此类不支持基于公钥的身份验证方法,如安全套接字层 (SSL) 客户端身份验证。
bruce_figo 2012-05-31
  • 打赏
  • 举报
回复
php代码能够正常获取目标页面
cnfixit 2012-05-31
  • 打赏
  • 举报
回复
php代码执行是什么结果呢?
hard9999 2012-05-31
  • 打赏
  • 举报
回复
控制面板->管理工具->计算机管理->本地用户和组,将IUSR_机器名账号启用。
如果还没有解决,查看本地安全策略中,IIS管理器中站点的默认匿名访问帐号或者其所属的组是否有通过网络访问服务器的权限,如果没有:
开始->程序->管理工具->本地安全策略->安全策略->本地策略->用户权限分配,双击“从网络访问此计算机”,添加IIS默认用户或者其所属的组。

110,524

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧