2017-02-09 2 views
0

サードパーティベンダーが認証を追加しています(yay!)が、いつもうまく機能するとは限りません。 C#アプリケーションは、 "管理者として" 実行され通常のユーザーの場合、「リモート側がトランスポートストリームをクローズしたため認証に失敗しました」

はそれが正常に動作します。アプリケーションは、通常の(非管理者)ユーザーとして実行されている場合しかし、それは我々が明示的にTLS 1.2

に設定されている

は「相手はトランスポートストリームを閉じたため、認証に失敗しました」

メッセージで失敗します私たちは、そのconsu
  • 4.6 .NET C#WCFクライアントを実行

    • ある
      ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12; 
      

      Windows Server 2012プラットフォーム

  • +0

    サードパーティベンダーに相談しましたか?それは彼らのコードなので、どの問題にも答えるのに最適です。 – Tim

    +0

    彼らは知らない。彼らはADMINユーザーとして実行されているが、他のユーザーとしては動作していないので、環境で何かを指している。 –

    答えて

    1

    をTLS1.2

  • を使用してHTTPSウェブサービス
  • をMES我々はthis stackoverflowのシナリオの助けを借りてそれを考え出しただけでなく、あまりにもthis 1 ..

    問題は、「コンピュータ」アカウントの証明書がTrusted People.にインストールされていることでした。管理者モードで実行している場合、または管理者特権を持つユーザーとして、正常に動作しました。ただし、 "サービスアカウント"(実際のサービスアカウントではないため、引用符で囲んでいます)として実行すると、サービスアカウントには証明書を読み取る権限がありません。

    C:\ProgramData\Microsoft\crypto\rsa\machinekeysディレクトリに掘り下げて、適切なcertの読み取り権限を変更したことがわかりました。

    私たちは、インストールされた証明書の読み取り権限に変更するicaclsを使用しての提案されたソリューション好きではなかった(部分的にあるため、実際に正しい証明書エントリを見つけることの困難な作業をする。)

    私たちができたことを把握mmc.exeservice accountとして実行し、それをそのアカウントのレベルTrusted Peopleにインストールします。 私たちの管理者以外のアプリケーションは、証明書を読み取り、接続を確立できます。

  • +0

    問題が見つかりましたらうれしいです。そして、答えを共有してくれてありがとう - それは人々の道を助ける:) – Tim

    関連する問題