8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

HttpClient 使用 PFX 传输证书与第三方应用程序建立连接

myleftshoe 2月前

74 0

我创建了一个胶囊并为其赋予了一个简单的纹理,使用像素级 Blinn-Phong 闪电模型编写了一个着色器。但结果似乎不对:镜面反射项似乎太大如果我更改 \'

我创建了一个胶囊并为其赋予了一个简单的纹理,使用像素级的 Blinn-Phong 闪电模型编写了一个着色器。但结果似乎不对:

  1. 镜面反射术语似乎太大如果我将“_Specular”属性更改为“white”,您可以看到结果
  2. 黑暗与光明的界限太过分明
  3. 无论我如何改变光源位置(Unity默认设置,定向光),胶囊的颜色都不会改变这是我的着色器代码:
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'

Shader "Single Texture" {
    Properties {
        _Color ("Color Tint", Color) = (1, 1, 1, 1)
        _MainTex ("Main Tex", 2D) = "white" {}
        _Specular ("Specular", Color) = (1, 1, 1, 1)
        _Gloww ("Gloss", Range(8.0, 256)) = 20
    }
    SubShader {
         Pass {
             Tags { "LightMode"="ForwardBase"}

             CGPROGRAM

             #pragma vertex vert
             #pragma fragment frag

             #include <Lighting.cginc>

             fixed4 _Color;
             sampler2D _MainTex;
             float4 _MainTex_ST;
             fixed4 _Specular;
             float _Gloss;

             struct a2v {
                float4 vertex : POSITION;
                float3 normal : NORMAL;
                float4 texcoord : TEXCOORD0;
              };

              struct v2f {
                  float4 pos : SV_POSITION;
                  float3 worldNormal : TEXCOORD0;
                  float3 worldPos : TEXCOORD1;
                  float2 uv : TEXCOORD2;
              };


              v2f vert(a2v v) {
                  v2f o;
                  o.pos = UnityObjectToClipPos(v.vertex);
                  o.worldNormal = UnityObjectToWorldNormal(v.normal);
                  o.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;
                  o.uv = v.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw;
                  return o;
              }

              fixed4 frag(v2f i) : SV_TARGET {
                  fixed3 worldNormal = normalize(i.worldNormal);
                  fixed3 worldLightDir = normalize(UnityWorldSpaceLightDir(i.worldPos));

                  fixed3 albedo = tex2D(_MainTex, i.uv).rgb * _Color.rgb;

                  fixed3 ambient = UNITY_LIGHTMODEL_AMBIENT.xyz * albedo;

                  fixed3 diffuse = _LightColor0.rgb * albedo * saturate(dot(worldNormal, worldLightDir));

                  fixed3 viewDir = normalize(UnityWorldSpaceViewDir(i.worldPos));
                  fixed3 halfDir = normalize(worldLightDir + viewDir);
                  fixed3 specular = _LightColor0.rgb * _Specular.rgb * pow(max(0, dot(worldNormal, halfDir)), _Gloss);

                  return fixed4(ambient + diffuse + specular, 1.0);
              }

             ENDCG
         }
    }
    Fallback "Specular"
}

这是我的错误胶囊:

在此处输入图片描述

实际上,我正在遵循一本 Unity Shader 教程书,我检查了书中的代码,结果发现我的代码与它完全相同。

我想知道问题是否与某种设置有关或者......

希望有人能告诉我这个问题。

帖子版权声明 1、本帖标题:HttpClient 使用 PFX 传输证书与第三方应用程序建立连接
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由myleftshoe在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 我有一个 Asp.Net core 应用程序,它有很多 PFX 证书,这些证书作为资源添加到应用程序中,每个证书都有一个特定的客户端。这个 Asp.net 应用程序负责

    我有一个 Asp.Net core 应用程序,它有很多 PFX 证书,这些证书作为资源添加到应用程序中,每个证书都有一个特定的客户端。这个 Asp.net 应用程序负责通过用户名/密码验证用户,检索存储的 PFX 证书并向另一个应用程序提交 POST 请求,而我无法访问该应用程序。

    在本地主机上运行时一切正常,但是,当我部署解决方案时(我在 Ubuntu 和 IIS 中部署它)我收到 SSL 异常,表明无法建立连接。

    我进行了一些测试,得出结论,不是第三方服务器拒绝连接,而是部署服务器。有人能帮我解决这个问题吗?

    这是我的 C# 代码:

    X509Certificate2 certificate;
    string certificatePassword = "myPassword";
    
    var assembly = System.Reflection.Assembly.GetExecutingAssembly();
    var resourceName = "MyApplication.identification_certificate.pfx";
    using (Stream stream = assembly.GetManifestResourceStream(resourceName))
    {
      byte[] bytes = new byte[stream.Length];
      await stream.ReadAsync(bytes, 0, bytes.Length);
      certificate = new X509Certificate2(bytes, certificatePassword);
    }
    
    
    HttpClientHandler handler = new HttpClientHandler();
    handler.ClientCertificateOptions = ClientCertificateOption.Manual;
    handler.SslProtocols = SslProtocols.Tls12;
    handler.ClientCertificates.Add(certificate);
    handler.ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) => true;
    
    using (HttpClient client = new HttpClient(handler))
    {
     // Set the content type
     client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/xml"));
    
     // Make the request
     string url = _configuration["Company"] + "/GetServicedUserInfo/";
     HttpResponseMessage rsp = await client.PostAsync(url, new StringContent(xmlRequest, Encoding.UTF8, "application/xml"));  //<< Exception happens here
     string responseContent = await rsp.Content.ReadAsStringAsync();
    }
    response.Structure = JsonConvert.SerializeObject(clientResponse);
    

    Ubuntu 异常消息:

    InnerException = {System.Net.Sockets.SocketException (104): System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.CreateException(SocketError error, Boolean forAsyncThrow) 在 System.Net.Sockets.Socket.AwaitableSocketAsyncEventArgs.SendAsy 处重置连接...

    如果有人能给我提供一些见解,我将不胜感激!提前谢谢你。

    手动安装证书,将证书添加到受信任的颁发机构,将调用从 RestSharp 更改为 System.Net.Http,使用其中一个 PFX 作为 DNS SSL 服务器

返回
作者最近主题: