2 messaggi dal 17 giugno 2021
ciao a tutti, ho la necessità di bypassare l'inserimento del pin della smart card in fase di accesso a un web service tessera sanitaria.
ho pescato questa funzione online.... non va: è sempre fatta richiesta del pin code://

la funzione viene eseguita prima di eseguire la richiesta.


        public object BeforeSendRequest(ref Message request, IClientChannel channel)
        {
            if (!string.IsNullOrEmpty(Settings.Default.WebProxy))
            {
                WebRequest.DefaultWebProxy = new WebProxy(Settings.Default.WebProxy, true)
                {
                    Credentials = new NetworkCredential(Settings.Default.WebProxyUsername, Settings.Default.WebProxyPassword)
                };
            }

            Message msg = Deserialize();

            if (msg != null)
            {
                request.Headers.Clear();
                request.Headers.CopyHeadersFrom(msg.Headers);

                request.Properties.Clear();
                request.Properties.CopyProperties(msg.Properties);
            }
            else
            {
                for (int i = 0; i < request.Headers.Count; ++i)
                {
                    if ("VsDebuggerCausalityData".Equals(request.Headers[i].Name))
                    {
                        request.Headers.RemoveAt(i);
                        break;
                    }
                }
            }

            if (!string.IsNullOrEmpty(SecurityBehaviour.FileNameClientRequest))
            {
                File.WriteAllText(SecurityBehaviour.FileNameClientRequest, request.ToString());
            }

            if (SecurityBehaviour.Certificate != null && !string.IsNullOrEmpty(Settings.Default.CNSPincode))
            {
                if (SecurityBehaviour.Certificate.PrivateKey is RSACryptoServiceProvider rsa)
                {
                    if (rsa.CspKeyContainerInfo.HardwareDevice)
                    {
                        var cspp = new CspParameters(1, rsa.CspKeyContainerInfo.ProviderName, rsa.CspKeyContainerInfo.UniqueKeyContainerName)
                        {
                            KeyPassword = new NetworkCredential("", Settings.Default.CNSPincode).SecurePassword,
                            Flags = CspProviderFlags.NoPrompt
                        };
                    }
                }
            }

            //if (SecurityBehaviour.Certificate != null && !string.IsNullOrEmpty(Settings.Default.CNSPincode))
            //{

            //    var provType = 0;
            //    var ProvName = string.Empty;
            //    var ContainerName = string.Empty;

            //    DSFirmaDigitaleHelper.GetCSPParameters(SecurityBehaviour.Certificate, ref provType, ref ProvName, ref ContainerName);
            //    DSFirmaDigitaleHelper.SetPINCache(ContainerName, ProvName, provType, Settings.Default.CNSPincode);
            //}

            return null;
        }

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.