小编gro*_*boy的帖子

使用子句无法调用Dispose?

我正在使用Visual Studio 2010来定位.NET 4.0 Client Profile.我有一个C#类来检测给定进程何时启动/终止.为此,该类使用ManagementEventWatcher,初始化如下; query,scope并且watcher是类字段:

query = new WqlEventQuery();
query.EventClassName = "__InstanceOperationEvent";
query.WithinInterval = new TimeSpan(0, 0, 1);
query.Condition = "TargetInstance ISA 'Win32_Process' AND TargetInstance.Name = 'notepad.exe'";

scope = new ManagementScope(@"\\.\root\CIMV2");

watcher = new ManagementEventWatcher(scope, query);
watcher.EventArrived += WatcherEventArrived;
watcher.Start();
Run Code Online (Sandbox Code Playgroud)

事件EventArrived的处理程序如下所示:

private void WatcherEventArrived(object sender, EventArrivedEventArgs e)
{
    string eventName;

    var mbo = e.NewEvent;
    eventName = mbo.ClassPath.ClassName;
    mbo.Dispose();

    if (eventName.CompareTo("__InstanceCreationEvent") == 0)
    {
        Console.WriteLine("Started");
    }
    else if (eventName.CompareTo("__InstanceDeletionEvent") == 0)
    {
        Console.WriteLine("Terminated");
    } …
Run Code Online (Sandbox Code Playgroud)

.net c# wmi using

24
推荐指数
1
解决办法
1830
查看次数

Jenkins SMTP TLS

我正在尝试设置Jenkins使用我们公司的SMTP服务器来发送构建通知.我们在端口587上使用TLS作为加密方法.但我似乎无法使电子邮件通知正常工作.

这是我的Hudson.Tasks.Mailer.xml文件,所以你可以看到我的配置(我已经删除了SMTP auth用户和密码并稍微更改了smtpHost以防万一)

<hudson.tasks.Mailer_-DescriptorImpl>
  <helpRedirect/>
  <defaultSuffix></defaultSuffix>
  <hudsonUrl>http://localhost:8080/</hudsonUrl>
  <smtpAuthUsername></smtpAuthUsername>
  <smtpAuthPassword></smtpAuthPassw$
  <adminAddress></adminAddress>
  <smtpHost>pod#####.outlook.com</smtpHost>
  <useSsl>true</useSsl>
  <smtpPort>587</smtpPort>
  <charset>UTF-8</charset>
</hudson.tasks.Mailer_-DescriptorImpl>
Run Code Online (Sandbox Code Playgroud)

看起来这是一个已知的问题,来自http://issues.hudson-ci.org/browse/HUDSON-2206

我对Apple OS(运行Jenkins的机器)不是很熟悉,但我想我可以使用上面提到的解决方法解决问题.我不完全知道从哪里把那个解决办法了,所以我试图把它的位置:/库/ Application Support /詹金斯/ jenkins-runner.sh

defaults="defaults read /Library/Preferences/org.jenkins-ci"

war=`$defaults war` || war="/Applications/Jenkins/jenkins.war"

javaArgs="-Dmail.smtp.starttls.enable=\"true\""
heapSize=`$defaults heapSize` && javaArgs="$javaArgs -Xmx${heapSize}"
permGen=`$defaults permGen` && javaArgs="$javaArgs -XX:MaxPermSize=${permGen}"

home=`$defaults JENKINS_HOME` && export JENKINS_HOME="$home"

add_to_args() {
  val=`$defaults $1` && args="$args --${1}=${val}"
}

args=""
add_to_args prefix
add_to_args httpPort
add_to_args httpListenAddress
add_to_args httpsPort
add_to_args httpsListenAddress
add_to_args ajp13Port
add_to_args ajp13ListenAddress

echo "JENKINS_HOME=$JENKINS_HOME"
echo "Jenkins command line for execution"
echo /usr/bin/java $javaArgs …
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-plugins

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

确保 TCP 流量和证书锁定安全?

我们开发了一个通过 TCP 处理请求的 Java 应用程序。我们还为应用程序开发客户端库,其中每个库支持不同的语言/平台(Java、.NET 等)。

直到最近,TCP 流量还被限制在安全网络中。为了支持在不安全网络上的使用,我们使用java-plain-and-tls-socket-examples中的配方实现了 TLS 。这里有适用于服务器和客户端的配方,以及生成 X.509 证书的脚本。以下是我们用于仅服务器身份验证的 TLS 的配方摘要:

  • 创建自签名的 X.509 根证书。
  • 使用包含证书的标识数据以及公钥和私钥的密钥库文件配置服务器。
  • 使用包含相同标识数据以及仅公钥的信任存储文件配置客户端。

这看起来像是证书固定的设置,因为客户端在连接之前拥有服务器证书的副本。显然,在连接时,客户端将以某种方式使用此数据来验证服务器发送的证书。

我们现在假设这种方法对于保护 TCP 流量是有效的。由证书颁发机构签名似乎没有必要,因为我们同时控制服务器和客户端。

初步测试表明该实现在我们的 Java 服务器和 Java 客户端(均在本地运行)中正常运行:

  • 客户端接受与客户端信任存储中的数据相匹配的服务器证书。
  • 客户端拒绝与客户端信任存储中的数据不匹配的服务器证书。
  • tcpdump显示 TCP 数据包包含加密数据。

.NET客户端

我们使用SslStream来加密 TCP 流量。正如文档所示,我们没有指定 TLS 版本;相反,如果版本低于 1.2,我们会抛出异常。

我们对如何正确使用X509Chain.ChainPolicy.CustomTrustStore没有信心,因为文档忽略了此类型的用例以及 和 等选项类型的X509KeyStorageFlags信息X509VerificationFlags

下面的代码旨在模仿上面概述的方法,即配置信任存储数据结构,供客户端在验证服务器证书时使用。这种方法似乎相当于将证书导入到操作系统的信任存储中。

// Import the trust store.
private X509Certificate2Collection GetCertificates(string storePath, string storePassword)
{
    byte[] bytes = File.ReadAllBytes(storePath);

    var result = …
Run Code Online (Sandbox Code Playgroud)

.net c# java ssl ssl-certificate

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

标签 统计

.net ×2

c# ×2

java ×1

jenkins ×1

jenkins-plugins ×1

ssl ×1

ssl-certificate ×1

using ×1

wmi ×1