microsoft - mta c#
ASP.NET-La contraseña de red especificada no es correcta (1)
Prueba esto:
new X509Certificate2(Path, "", X509KeyStorageFlags.MachineKeySet);
Parece que el constructor X509Certificate2 intenta acceder al almacén de claves privadas del usuario local (incluso cuando se carga un PFX y la clave privada está en el PFX). Con asp.net, el perfil de usuario normalmente no se carga, por lo que el almacén de claves de usuario no existe. La especificación de MachineKeySet le indica al constructor que busque en el almacén de claves de la computadora local, que siempre existe.
Tengo en mi máquina de desarrollo un cliente WCF que requiere certificado y funciona bien.
Después de la implementación en el servidor de producción, obtengo el siguiente error:
[CryptographicException: The specified network password is not correct.]
DEV - Win7 32BIT IIS 7.5
PRODUCCIÓN - Win SERVER 64BIT 2008 IIS 7.5
Aunque no hay una contraseña entre las redes y no hay una contraseña de certificado. (Lo sé porque el desarrollador trabaja sin contraseña). La única contraseña que tengo es la WCF que es la misma que la DEV.
CrmServiceClient crm = new CrmServiceClient("CrmServiceEndpoint");
crm.ClientCredentials.UserName.UserName = CrmConfigRepository.CrmUserName;//fine
crm.ClientCredentials.UserName.Password = CrmConfigRepository.CrmPassword;//fine
crm.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(Path);
///THIS WONT WORK AS WELL
crm.ClientCredentials.ClientCertificate.Certificate = new X509Certificate2(Path, "", X509KeyStorageFlags.Exportable);
esta es la pila completa
[CryptographicException: The specified network password is not correct. ]
System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) +41
System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromFile(String fileName, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx) +0
System.Security.Cryptography.X509Certificates.X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags) +372
System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName) +101
Externals.CrmConnection.Get() in C:/Users/avi/Documents/Visual Studio 2010/Projects/ExpressBroker/Externals/CrmConnection.cs:31
ExpressBroker.Models.ActionsMetadata.Handlers.LeadAccountHandler.Handle(BrokerAction brokerAction, ActionStep step, Dictionary`2 httpPostDataCollection) in C:/Users/avi/Documents/Visual Studio 2010/Projects/ExpressBroker/ExpressBroker/Models/ActionsMetadata/Handlers/LeadAccountHandler.cs:45
ExpressBroker.Models.ActionsMetadata.Handlers.BaseStepHandler.SecuredHandle(BrokerAction brokerAction, ActionStep step, Dictionary`2 httpPostDataCollection) in C:/Users/avi/Documents/Visual Studio 2010/Projects/ExpressBroker/ExpressBroker/Models/ActionsMetadata/Handlers/BaseStepHandler.cs:49
ExpressBroker.Models.ActionsMetadata.Handlers.HandlerInvoker.Invoke(BrokerAction brokerAction, ActionStep actionStep, Dictionary`2 stepValues) in C:/Users/avi/Documents/Visual Studio 2010/Projects/ExpressBroker/ExpressBroker/Models/ActionsMetadata/Handlers/StepServerInoker.cs:29
ExpressBroker.Controllers.LeadAccountController.Register(String step) in C:/Users/avi/Documents/Visual Studio 2010/Projects/ExpressBroker/ExpressBroker/Controllers/LeadAccountController.cs:28
lambda_method(Closure , ControllerBase , Object[] ) +127
System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters) +264
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +39
System.Web.Mvc.<>c__DisplayClass15.<InvokeActionMethodWithFilters>b__12() +129
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func`1 continuation) +784922
System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodWithFilters(ControllerContext controllerContext, IList`1 filters, ActionDescriptor actionDescriptor, IDictionary`2 parameters) +314
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext, String actionName) +784976
System.Web.Mvc.Controller.ExecuteCore() +159
System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext) +335
System.Web.Mvc.<>c__DisplayClassb.<BeginProcessRequest>b__5() +62
System.Web.Mvc.Async.<>c__DisplayClass1.<MakeVoidDelegate>b__0() +20
System.Web.Mvc.<>c__DisplayClasse.<EndProcessRequest>b__d() +54
System.Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() +453
System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously) +371
Gracias