我有一个der格式的证书,从这个命令我生成一个公钥:
openssl x509 -inform der -in ejbcacert.cer -noout -pubkey > pub1key.pub
Run Code Online (Sandbox Code Playgroud)
结果如下:
-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC7vbqajDw4o6gJy8UtmIbkcpnk
O3Kwc4qsEnSZp/TR+fQi62F79RHWmwKOtFmwteURgLbj7D/WGuNLGOfa/2vse3G2
eHnHl5CB8ruRX9fBl/KgwCVr2JaEuUm66bBQeP5XeBotdR4cvX38uPYivCDdPjJ1
QWPdspTBKcxeFbccDwIDAQAB
-----END PUBLIC KEY-----
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得这样的公钥?来自证书还是来自这个公钥?
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQC7vbqajDw4o6gJy8UtmIbkcpnkO3Kwc4qsEnSZp/TR+fQi62F79RHWmwKOtFmwteURgLbj7D/WGuNLGOfa/2vse3G2eHnHl5CB8ruRX9fBl/KgwCVr2JaEuUm66bBQeP5XeBotdR4cvX38uPYivCDdPjJ1QWPdspTBKcxeFbccDw==
Run Code Online (Sandbox Code Playgroud)
这是通过以下命令获得的:
ssh-keygen -y -f private_key1.pem > public_key1.pub
Run Code Online (Sandbox Code Playgroud) 我有一个服务的动态客户端.如何更改其端点绑定的ReaderQuotas属性?
我试过这样但它不起作用......
DynamicProxyFactory factory = new DynamicProxyFactory(m_serviceWsdlUri);
foreach (ServiceEndpoint endpoint in factory.Endpoints)
{
Binding binding = endpoint.Binding;
binding.GetProperty<XmlDictionaryReaderQuotas>(new BindingParameterCollection()).MaxArrayLength = 2147483647
binding.GetProperty<XmlDictionaryReaderQuotas>(new BindingParameterCollection()).MaxBytesPerRead =2147483647;
binding.GetProperty<XmlDictionaryReaderQuotas>(new BindingParameterCollection()).MaxDepth = 2147483647;
binding.GetProperty<XmlDictionaryReaderQuotas>(new BindingParameterCollection()).MaxNameTableCharCount = 2147483647;
binding.GetProperty<XmlDictionaryReaderQuotas>(new BindingParameterCollection()).MaxStringContentLength = 2147483647;
}
Run Code Online (Sandbox Code Playgroud)
即使这样做,ReaderQuotas值仍然是默认值.
我也尝试过这样但仍然不起作用:
DynamicProxyFactory factory = new DynamicProxyFactory(m_serviceWsdlUri);
foreach (ServiceEndpoint endpoint in factory.Endpoints)
{
System.ServiceModel.Channels.BindingElementCollection bec = endpoint.Binding.CreateBindingElements();
System.ServiceModel.Channels.TransportBindingElement tbe = bec.Find<System.ServiceModel.Channels.TransportBindingElement>();
tbe.MaxReceivedMessageSize = 2147483647;
tbe.MaxBufferPoolSize = 2147483647;
TextMessageEncodingBindingElement textBE = bec.Find<TextMessageEncodingBindingElement>();
if (textBE != null)
{
textBE.ReaderQuotas.MaxStringContentLength = 2147483647;
textBE.ReaderQuotas.MaxArrayLength = 2147483647;
textBE.ReaderQuotas.MaxBytesPerRead …Run Code Online (Sandbox Code Playgroud) 如何在.Net C#中验证用Java创建的SAML签名?这是我从Java获得的SAML签名:
<ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
<ds:SignedInfo>
<ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
</ds:CanonicalizationMethod>
<ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1">
</ds:SignatureMethod>
<ds:Reference URI="#_e8bcba9d1c76d128938bddd5ae8c68e1">
<ds:Transforms>
<ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature">
</ds:Transform>
<ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#">
<ec:InclusiveNamespaces xmlns:ec="http://www.w3.org/2001/10/xml-exc-c14n#" PrefixList="code ds kind rw saml samlp typens #default xsd xsi">
</ec:InclusiveNamespaces>
</ds:Transform>
</ds:Transforms>
<ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1">
</ds:DigestMethod>
<ds:DigestValue>zEL7mB0Wkl+LtjMViO1imbucXiE=</ds:DigestValue>
</ds:Reference>
</ds:SignedInfo>
<ds:SignatureValue>
jpIX3WbX9SCFnqrpDyLj4TeJN5DGIvlEH+o/mb9M01VGdgFRLtfHqIm16BloApUPg2dDafmc9DwL
Pyvs3TJ/hi0Q8f0ucaKdIuw+gBGxWFMcj/U68ZuLiv7U+Qe7i4ZA33rWPorkE82yfMacGf6ropPt
v73mC0bpBP1ubo5qbM4=
</ds:SignatureValue>
<ds:KeyInfo>
<ds:X509Data>
<ds:X509Certificate>
MIIDBDCCAeygAwIBAgIIC/ktBs1lgYcwDQYJKoZIhvcNAQEFBQAwNzERMA8GA1UEAwwIQWRtaW5D
QTExFTATBgNVBAoMDEVKQkNBIFNhbXBsZTELMAkGA1UEBhMCU0UwHhcNMDkwMjIzMTAwMzEzWhcN
MTgxMDE1MDkyNTQyWjBaMRQwEgYDVQQDDAsxMC41NS40MC42MTEbMBkGA1UECwwST24gRGVtYW5k
IFBsYXRmb3JtMRIwEAYDVQQLDAlPbiBEZW1hbmQxETAPBgNVBAsMCFNvZnR3YXJlMIGfMA0GCSqG
SIb3DQEBAQUAA4GNADCBiQKBgQCk5EqiedxA6WEE9N2vegSCqleFpXMfGplkrcPOdXTRLLOuRgQJ
LEsOaqspDFoqk7yJgr7kaQROjB9OicSH7Hhsu7HbdD6N3ntwQYoeNZ8nvLSSx4jz21zvswxAqw1p
DoGl3J6hks5owL4eYs2yRHvqgqXyZoxCccYwc4fYzMi42wIDAQABo3UwczAdBgNVHQ4EFgQUkrpk
yryZToKXOXuiU2hNsKXLbyIwDAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBSiviFUK7DUsjvByMfK
g+pm4b2s7DAOBgNVHQ8BAf8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwDQYJKoZIhvcNAQEF
BQADggEBAKb94tnK2obEyvw8ZJ87u7gvkMxIezpBi/SqXTEBK1by0NHs8VJmdDN9+aOvC5np4fOL
fFcRH++n6fvemEGgIkK3pOmNL5WiPpbWxrx55Yqwnr6eLsbdATALE4cgyZWHl/E0uVO2Ixlqeygw
XTfg450cCWj4yfPTVZ73raKaDTWZK/Tnt7+ulm8xN+YWUIIbtW3KBQbGomqOzpftALyIKLVtBq7L
J0hgsKGHNUnssWj5dt3bYrHgzaWLlpW3ikdRd67Nf0c1zOEgKHNEozrtRKiLLy+3bIiFk0CHImac
1zeqLlhjrG3OmIsIjxc1Vbc0+E+z6Unco474oSGf+D1DO+Y=
</ds:X509Certificate>
</ds:X509Data>
</ds:KeyInfo>
</ds:Signature>
Run Code Online (Sandbox Code Playgroud)
我知道解析SAML,我需要验证签名.我试过这个:
public bool VerifySignature()
{
X509Certificate2 certificate = null;
XmlDocument doc = new XmlDocument(); …Run Code Online (Sandbox Code Playgroud) 一位客户在我的WCF客户端连接到我们的服务器服务时报告了此错误.
"消息:尝试对无法访问的主机执行套接字操作类型:System.Net.Sockets.SocketException"
从这个链接http://msdn.microsoft.com/en-us/library/ms740668%28v=vs.85%29.aspx我看到:
WSAEHOSTUNREACH 10065无东道主路线.尝试对无法访问的主机执行套接字操作.见WSAENETUNREACH.
WSAENETUNREACH 10051网络无法访问.尝试对无法访问的网络执行套接字操作.这通常意味着本地软件不知道到达远程主机的路由.
这是客户网络上的网络错误吗?这是我们可以建议客户做的事情吗?
WCF客户端之前能够连接到服务器服务,并且在重新启动计算机之后似乎问题消失了(或者在此期间可能修复了网络问题).
谢谢
阿德里安娜
我想制作一个bat文件来在Windows Server 2012上安装.net Framework 3.5。我尝试这样做但没有成功:
cd /D %userprofile%
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
Import-Module ServerManager
powershell -ImportSystemModules Add-WindowsFeature NET-Framework-Features
Run Code Online (Sandbox Code Playgroud)
似乎进入 powershell 控制台后最后 2 个命令没有执行。
有谁知道为什么会卡住?
或者是否有人有其他 bat 文件如何在 Windows Server 2012 中自动安装 .net 3.5?
经过更多尝试后,我让蝙蝠在手动运行时使用以下命令。
call C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ImportSystemModules Add-WindowsFeature NET-Framework-Features
Run Code Online (Sandbox Code Playgroud)
但是当我尝试从 dotnetInstaller 运行它时,同一个蝙蝠不再工作
<component command="CMD.EXE /K "#APPPATH\Install.net3.5.bat"" command_silent="" command_basic="" uninstall_command="" uninstall_command_silent="" uninstall_command_basic="" returncodes_success="" returncodes_reboot="" disable_wow64_fs_redirection="False" id=".Net 3.5 SP1 Win8Server" display_name=".Net 3.5 SP1" uninstall_display_name="" os_filter="" os_filter_min="winServer2008R2" os_filter_max="" os_filter_lcid="" type="cmd" installcompletemessage="" uninstallcompletemessage="" mustreboot="False" reboot_required="" must_reboot_required="False" failed_exec_command_continue="" allow_continue_on_error="True" default_continue_on_error="False" required_install="True" required_uninstall="True" selected_install="True" selected_uninstall="True" note="" processor_architecture_filter="" status_installed="" status_notinstalled="" …Run Code Online (Sandbox Code Playgroud) powershell batch-file .net-3.5 dotnetinstaller windows-server-2012
我有一个C#WCF服务,它接收请求消息并将其发布到另一个服务.发布到其他服务是通过HttpWebRequest完成的.当我将它们发布到其他服务时,如何在我的服务中获取原始请求HTTP标头并将它们放入HttpWebRequest中.
像这样的东西:
HttpRequestMessageProperty httpRequestProp = GetHttpRequestProp(requestMessage);
HttpWebRequest loHttp = (HttpWebRequest)WebRequest.Create(uri);
foreach (var item in httpRequestProp.Headers.AllKeys)
{
loHttp.Headers.Add(item, httpRequestProp.Headers[item]);
}
Run Code Online (Sandbox Code Playgroud)
我知道这不起作用,因为HttpWebRequest loHttp有自己的属性,当我尝试以上述方式设置ContentType时它抛出异常,因为它需要像这样设置:
loHttp.ContentType = httpRequestProp.Headers[HttpRequestHeader.ContentType];
Run Code Online (Sandbox Code Playgroud)
那么有没有办法从调用中复制HTTP请求标头并将它们作为HTTP请求标头放到另一个HttpWebRequest?此外,原始请求可能还设置了其他自定义标头,我也希望将这些标头也发送到其他服务.
谢谢Adrya
我有一个WCF服务侦听 Windows Service Registry中的动态分配端口.如何从另一个c#应用程序中找到此服务的侦听地址?或者至少是这项服务的端口?
谢谢,阿德里安娜
c# ×4
wcf ×4
.net ×3
.net-3.5 ×1
batch-file ×1
http-headers ×1
interop ×1
networking ×1
openssh ×1
openssl ×1
powershell ×1
readerquotas ×1
saml ×1
wcf-client ×1