【问题标题】:How do access a secure website within a sharepoint webpart?如何在 sharepoint webpart 中访问安全网站?
【发布时间】:2010-12-09 04:08:37
【问题描述】:

如何在 sharepoint webpart 中访问安全网站?以下代码作为控制台应用程序可以正常工作,但如果您在 Web 部件中运行它,您将遇到访问冲突

WebRequest request = WebRequest.Create("https://somesecuresite.com");
WebResponse firstResponse = null;
try 
{
    firstResponse = request.GetResponse();  
}  
catch (WebException ex)  
{ 

    writer.WriteLine("Error: " + ex.ToString());
    return;  
}

如果您访问不安全的网站,它也可以工作。有什么想法吗?

错误:System.Net.WebException:底层连接已关闭:接收时发生意外错误。 ---> System.AccessViolationException:试图读取或写入受保护的内存。这通常表明其他内存已损坏。 在 System.Net.UnsafeNclNativeMethods.NativePKI.CertVerifyCertificateChainPolicy(IntPtr 策略,SafeFreeCertChain 链上下文,ChainPolicyParameter& cpp,ChainPolicyStatus& ps) 在 System.Net.PolicyWrapper.VerifyChainPolicy(SafeFreeCertChain chainContext,ChainPolicyParameter& cpp) 在 System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback) 在 System.Net.Security.SslState.CompleteHandshake() 在 System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken 消息,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.StartSendBlob(字节 [] 传入,Int32 计数,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.ProcessReceivedBlob(字节 [] 缓冲区,Int32 计数,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.StartReadFrame(字节 [] 缓冲区,Int32 读取字节,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.StartReceiveBlob(字节 [] 缓冲区,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken 消息,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.StartSendBlob(字节 [] 传入,Int32 计数,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.ProcessReceivedBlob(字节 [] 缓冲区,Int32 计数,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.StartReadFrame(字节 [] 缓冲区,Int32 读取字节,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.StartReceiveBlob(字节 [] 缓冲区,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken 消息,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.StartSendBlob(字节 [] 传入,Int32 计数,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.ProcessReceivedBlob(字节 [] 缓冲区,Int32 计数,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.StartReadFrame(字节 [] 缓冲区,Int32 读取字节,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.StartReceiveBlob(字节 [] 缓冲区,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken 消息,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.StartSendBlob(字节 [] 传入,Int32 计数,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.ForceAuthentication(布尔接收第一,字节 [] 缓冲区,AsyncProtocolRequest asyncRequest) 在 System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResultlazyResult) 在 System.Net.TlsStream.CallProcessAuthentication(对象状态) 在 System.Threading.ExecutionContext.runTryCode(对象 userData) 在 System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode 代码,CleanupCode backoutCode,对象 userData) 在 System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext,ContextCallback 回调,对象状态) 在 System.Threading.ExecutionContext.Run(ExecutionContext executionContext,ContextCallback 回调,对象状态) 在 System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult 结果) 在 System.Net.TlsStream.Write(字节 [] 缓冲区,Int32 偏移量,Int32 大小) 在 System.Net.PooledStream.Write(Byte[] 缓冲区,Int32 偏移量,Int32 大小) 在 System.Net.ConnectStream.WriteHeaders(Boolean async) --- 内部异常堆栈跟踪结束 --- 在 System.Net.HttpWebRequest.GetResponse()

【问题讨论】:

  • 证书对网站有效吗?
  • 是的...似乎任何安全网站都会导致此错误

标签: c# sharepoint web-parts


【解决方案1】:

我曾经遇到过这个问题,并通过覆盖 GetWebRequest 方法解决了它:请参见此处:

http://p2p.wrox.com/net-web-services/4586-underlying-connection-closed.html

【讨论】:

    猜你喜欢
    • 2010-09-27
    • 1970-01-01
    • 2018-01-16
    • 2014-02-21
    • 1970-01-01
    • 2020-01-06
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    相关资源
    最近更新 更多