小编Adr*_*rya的帖子

将pem键转换为ssh-rsa格式

我有一个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)

openssl openssh

132
推荐指数
7
解决办法
17万
查看次数

在控制台中显示UTF-8字符

如何在控制台UTF8字符中打印?

随着Console.Writeline("î??â?")我看到îasât控制台.

c#

30
推荐指数
4
解决办法
2万
查看次数

以编程方式修改端点ReaderQuotas

我有一个服务的动态客户端.如何更改其端点绑定的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)

c# wcf readerquotas

18
推荐指数
2
解决办法
2万
查看次数

从C#验证java SAML签名

如何在.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)

.net interop saml

6
推荐指数
1
解决办法
6256
查看次数

尝试对无法访问的主机执行套接字操作

一位客户在我的WCF客户端连接到我们的服务器服务时报告了此错误.

"消息:尝试对无法访问的主机执行套接字操作类型:System.Net.Sockets.SocketException"

从这个链接http://msdn.microsoft.com/en-us/library/ms740668%28v=vs.85%29.aspx我看到:

WSAEHOSTUNREACH 10065无东道主路线.尝试对无法访问的主机执行套接字操作.见WSAENETUNREACH.

WSAENETUNREACH 10051网络无法访问.尝试对无法访问的网络执行套接字操作.这通常意味着本地软件不知道到达远程主机的路由.

这是客户网络上的网络错误吗?这是我们可以建议客户做的事情吗?

WCF客户端之前能够连接到服务器服务,并且在重新启动计算机之后似乎问题消失了(或者在此期间可能修复了网络问题).

谢谢

阿德里安娜

.net wcf networking network-programming wcf-client

6
推荐指数
1
解决办法
3万
查看次数

用于为 win server 2012 安装 .net 3.5 框架的 bat 文件

我想制作一个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 &quot;#APPPATH\Install.net3.5.bat&quot;" 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

5
推荐指数
1
解决办法
1万
查看次数

从调用HttpWebRequest复制HTTP请求/响应头?

我有一个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

c# wcf httpwebrequest http-headers

3
推荐指数
1
解决办法
1万
查看次数

如何获取WCF服务的侦听地址/端口?

我有一个WCF服务侦听 Windows Service Registry中的动态分配端口.如何从另一个c#应用程序中找到此服务的侦听地址?或者至少是这项服务的端口?

谢谢,阿德里安娜

.net c# wcf

2
推荐指数
1
解决办法
4162
查看次数