C# 如何访问sharepoint Web部件中的安全网站?

C# 如何访问sharepoint Web部件中的安全网站?,c#,sharepoint,web-parts,C#,Sharepoint,Web Parts,如何访问sharepoint Web部件中的安全网站?下面的代码可以作为控制台应用程序使用,但如果在Web部件中运行,则会出现访问冲突 WebRequest request = WebRequest.Create("https://somesecuresite.com"); WebResponse firstResponse = null; try { firstResponse = request.GetResponse(); } catch (WebException ex

如何访问sharepoint Web部件中的安全网站?下面的代码可以作为控制台应用程序使用,但如果在Web部件中运行,则会出现访问冲突

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

    writer.WriteLine("Error: " + ex.ToString());
    return;  
}
如果您访问一个不安全的站点,它也可以工作。有什么想法吗

Error: System.Net.WebException: The underlying connection was closed: An unexpected error occurred on a receive. ---> System.AccessViolationException: Attempted to read or write protected memory. This is often an indication that other memory is corrupt. at System.Net.UnsafeNclNativeMethods.NativePKI.CertVerifyCertificateChainPolicy(IntPtr policy, SafeFreeCertChain chainContext, ChainPolicyParameter& cpp, ChainPolicyStatus& ps) at System.Net.PolicyWrapper.VerifyChainPolicy(SafeFreeCertChain chainContext, ChainPolicyParameter& cpp) at System.Net.Security.SecureChannel.VerifyRemoteCertificate(RemoteCertValidationCallback remoteCertValidationCallback) at System.Net.Security.SslState.CompleteHandshake() at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult lazyResult) at System.Net.TlsStream.CallProcessAuthentication(Object state) at System.Threading.ExecutionContext.runTryCode(Object userData) at System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData) at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Net.TlsStream.ProcessAuthentication(LazyAsyncResult result) at System.Net.TlsStream.Write(Byte[] buffer, Int32 offset, Int32 size) at System.Net.PooledStream.Write(Byte[] buffer, Int32 offset, Int32 size) at System.Net.ConnectStream.WriteHeaders(Boolean async) --- End of inner exception stack trace --- at System.Net.HttpWebRequest.GetResponse() 错误:System.Net.WebException:基础连接已关闭:接收时发生意外错误。--> System.AccessViolationException:尝试读取或写入受保护内存。这通常表示其他内存已损坏。 位于System.Net.UnsafeNclNativeMethods.NativePKI.CertVerifyCertificateChainePolicy(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 readBytes,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 readBytes,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 readBytes,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(布尔值receiveFirst,字节[]缓冲区,AsyncProtocolRequest asyncRequest) 在System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResult-lazyResult)上 在System.Net.TlsStream.CallProcessAuthentication(对象状态)中 位于System.Threading.ExecutionContext.runTryCode(对象用户数据) 在System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode代码、CleanupCode backoutCode、Object 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(字节[]缓冲区,Int32偏移量,Int32大小) 在System.Net.ConnectStream.WriteHeaders(布尔异步)-内部异常堆栈跟踪的末尾--- 在System.Net.HttpWebRequest.GetResponse()中
我曾经遇到过这个问题,并通过过度隐藏GetWebRequest方法解决了它:请参见此处:


证书是否对该站点有效?是。。。似乎任何安全的网站都会导致此错误