Вы находитесь на странице: 1из 13

Crear aplicaciones ASP.

NET
seguras
Autenticacin, autorizacin y comunicacin
segura
Consulte la Pgina de entrada como punto de partida y para obtener una descripcin
completa del documento Crear aplicaciones ASP.NET seguras.
Resumen
Los servicios Web admiten la autenticacin mediante certificados de cliente como medio
para autenticar aplicaciones cliente. En este artculo se muestra cmo configurar un
servicio Web para la autenticacin mediante certificados de cliente y cmo llamar al
servicio Web, pasando un certificado de una aplicacin Web AP.!E".
Cmo: Llamar a un servicio Web mediante
certificados de cliente en ASP.NET
En los servicios Web suele ser necesaria la posibilidad de autenticar a los llamadores
#otras aplicaciones$ para poder reali%ar la autori%acin. Los certificados de cliente
ofrecen un mecanismo de autenticacin e&celente para los servicios Web. i se utili%an
certificados de cliente, la aplicacin se beneficia tambi'n de la creacin de un canal
seguro (en el )ue se utili%a ecure oc*ets Layer #L$+ entre la aplicacin cliente y el
servicio Web. Esto le permite enviar de forma segura informacin confidencial ,acia y
desde el servicio Web. L asegura la integridad y confidencialidad de los mensa-es.
En este artculo se describe cmo llamar a un servicio Web )ue est configurado para
re)uerir certificados de cliente.
Nota: la informacin de este artculo se aplica tambi'n a los componentes remotos
alo-ados en AP.!E" y en ...
Por u! utili"ar un com#onente revisado$
En la solucin )ue se presenta en este artculo se utili%a un componente revisado
configurado para e-ecutarse en una aplicacin de servidor de ervicios Empresariales
con una cuenta de servicio personali%ada. La aplicacin Web AP.!E" llama al
componente revisado, el cual reali%a la llamada al servicio Web #y pasa un certificado de
cliente$. En la ilustracin / se muestra la configuracin de la solucin.
/
{Insert fgure: o! To " Calling A #e$ Ser%ice !it& Certifcates.gi'(
.lustracin /
ASP.NET llama a un componente revisado para invocar el servicio Web
0e esta forma se asegura )ue el sistema tiene acceso a un perfil de usuario al
comunicarse con el servicio Web. El perfil es necesario para el protocolo de enlace L
inicial.
Nota: la cuenta AP!E" )ue se utili%a para e-ecutar aplicaciones Web tiene el
privilegio 10enegar el inicio de sesin interactivo1, )ue impide el inicio de sesin de
forma interactiva. Como consecuencia, la cuenta no tiene un perfil de usuario.
!o conceda la capacidad de inicio de sesin interactivo a la cuenta AP!E" #ni a
ninguna otra cuenta )ue se utilice para e-ecutar aplicaciones Web$. 2espete siempre
el principio de privilegios mnimos al configurar cuentas para e-ecutar aplicaciones
Web y conceda a las cuentas los mnimos privilegios posibles. Para obtener ms
informacin, consulte 1Cmo3 Crear una cuenta personali%ada para e-ecutar AP.!E"1
en la seccin 2eferencia de esta gua.
Por u! se reuiere un #erfil de usuario$
Cuando se reali%a una solicitud a un servicio Web )ue re)uiere certificados de cliente, se
produce un protocolo de enlace L entre el cliente y el servidor. Algunos de los
componentes intercambiados son el certificado de servidor, el certificado de cliente y un
4secreto maestro previo5 )ue genera el cliente. El secreto se utili%a posteriormente en el
protocolo para generar un 4secreto maestro5.
Para )ue el servidor pueda comprobar )ue el presentador del certificado es realmente el
titular de la clave privada, el cliente debe cifrar el secreto maestro previo con la clave
privada y enviar el secreto cifrado al servidor. Para )ue el sistema pueda tener acceso a
la clave privada del cliente para firmar el secreto maestro previo, debe tener acceso a la
clave privada en el almac'n de claves del cliente. El almac'n de claves se encuentra en
el perfil del cliente, )ue debe estar cargado.
6
Reuisitos
A continuacin se describen las recomendaciones de ,ard7are, soft7are, infraestructura
de red, conocimientos y ervice Pac* )ue se necesitan.
istema operativo 8icrosoft9 Windo7s9 6:::
istema de desarrollo 8icrosoft ;isual tudio9 .!E"
Acceso a una entidad emisora de certificados #CA, Certificate Authority$ para generar
nuevos certificados
<n servidor Web )ue tenga instalado un certificado de servidor
Para obtener ms informacin acerca de cmo instalar certificados de servidor
Web, consulte 1Cmo3 Configurar L en un servidor Web1.

Para llevar a cabo los procedimientos de este artculo, tambi'n es necesario )ue tenga
conocimientos de la ,erramienta de desarrollo 8icrosoft ;isual C=>.
Resumen
En este artculo se incluyen los siguientes procedimientos3
/. Crear un servicio Web sencillo
6. Configurar el directorio virtual del servicio Web para re)uerir certificados de cliente
?. Crear una cuenta personali%ada para e-ecutar un componente revisado
@. olicitar un certificado de cliente para la cuenta personali%ada
A. Probar el certificado de cliente con un e&plorador
B. E&portar el certificado de cliente a un arc,ivo
C. 0esarrollar el componente revisado )ue se utili%a para llamar al servicio Web
D. Configurar e instalar el componente revisado
E. 0esarrollar una aplicacin Web para llamar al componente revisado

Nota: en este artculo, el e)uipo en el )ue reside el servicio Web se llama 1Werver1
y el e)uipo cliente del servicio Web #en el )ue reside la aplicacin Web AP.!E" de
cliente y el componente revisado$ se llama 1WClient1.
%. Crear un servicio Web sencillo
Para crear un servicio Web sencillo en el eui#o &ost de servicios Web
/. .nicie ;isual tudio .!E" y cree una nueva aplicacin de servicio Web AP.!E" en
C= con el nombre Secure'at&.
6. Cambie el nombre de service/.asm& por mat,.asm&.
?. Abra mat,.asm&.cs y cambie el nombre de la clase Service% por mat&.
@. Agregue a la clase mat& el siguiente m'todo Web.
[WebMethod]
public long Add(long operand1, long operand2)
{
return (operand1 + operand2);
}
?
@. En el menF (enerar, ,aga clic en (enerar solucin para crear el servicio Web.

). Confi*urar el directorio virtual del servicio Web #ara
reuerir certificados de cliente
En este procedimiento se utili%a ervicios de .nternet .nformation erver para configurar
el directorio virtual del servicio Web para L y para re)uerir certificados.
En este procedimiento se supone )ue dispone de un certificado vlido instalado en el
servidor Web. Para obtener ms informacin acerca de cmo instalar certificados de
servidor Web, consulte 1Cmo3 Configurar L en un servidor Web1 en la seccin
2eferencia de esta gua.
Para confi*urar el directorio virtual del servicio Web #ara reuerir certificados
de cliente
/. .nicie ervicios de .nternet .nformation erver en el e)uipo ,ost de servicios Web.
6. ;aya al directorio virtual Secure'at&.
?. Gaga clic con el botn secundario del mouse #ratn$ en Secure'at& y, a
continuacin, ,aga clic en Pro#iedades.
@. Gaga clic en la fic,a Se*uridad de directorios.
A. En Comunicaciones se*uras, ,aga clic en 'odificar.
i el botn 'odificar no est disponible, lo ms probable es )ue no tenga
instalado un certificado de servidor Web.
B. Active la casilla de verificacin Reuerir canal se*uro +SSL,.
C. eleccione la opcin Reuerir certificados de cliente.
D. Gaga clic en Ace#tar y, a continuacin, ,aga clic de nuevo en Ace#tar.
E. En el cuadro de dilogo Hmitir ,erencia, ,aga clic en Seleccionar todo y,
despu's, ,aga clic en Ace#tar para cerrar el cuadro de dilogo de propiedades de
Secure'at&.
0e esta forma se aplica la nueva configuracin de seguridad a todos los
subdirectorios contenidos en la ra% del directorio virtual.

-. Crear una cuenta #ersonali"ada #ara e.ecutar un
com#onente revisado
En este procedimiento se crea una nueva cuenta de usuario en el e)uipo cliente del
servicio Web )ue se utili%ar para e-ecutar el componente revisado )ue llama al servicio
Web.
Para crear una cuenta #ersonali"ada #ara e.ecutar el com#onente revisado
/. Cree una nueva cuenta de usuario con una contraseIa segura en el e)uipo
cliente. 0esactive la casilla de verificacin El usuario debe cambiar la
contrase/a en el si*uiente inicio de sesin y, despu's, active la casilla La
contrase/a nunca caduca.
6. Agregue la cuenta al grupo Administradores.
La cuenta )ue se utili%a para cargar un perfil de usuario debe ser una cuenta de
administrador en el e)uipo local.

@
0. Solicitar un certificado de cliente #ara la cuenta
#ersonali"ada
En este procedimiento se iniciar sesin en el e)uipo cliente con la nueva cuenta
personali%ada. 0espu's se emitir una solicitud de certificado. Adems se supone )ue
se estn utili%ando los ervicios de 8icrosoft Certificate erver. i no est utili%ando los
ervicios de 8icrosoft Certificate erver para crear nuevos certificados, enve una
solicitud de certificado de cliente a la CA )ue prefiera e instale el certificado durante una
sesin iniciada con la cuenta personali%ada.
En este procedimiento tambi'n se supone )ue los ervicios de 8icrosoft Certificate
erver estn configurados para emitir automticamente certificados como respuesta a
las solicitudes de certificados. "ambi'n se pueden configurar para solicitudes
pendientes, las cuales re)uieren )ue un administrador emita e&plcitamente el
certificado.
Para com#robar la confi*uracin de los Servicios de 'icrosoft Certificate
Server
/. En el e)uipo donde residen los ervicios de 8icrosoft Certificate erver, ,aga clic
en Entidad emisora de certificados dentro del grupo de programas
1erramientas administrativas.
6. E&panda Entidad emisora de certificados +local,, ,aga clic con el botn
secundario del mouse #ratn$ en la entidad y, a continuacin, ,aga clic en
Pro#iedades.
?. Gaga clic en la fic,a 'dulo de directivas y, despu's, ,aga clic en Confi*urar.
@. Compruebe la accin predeterminada.
En el siguiente procedimiento se supone )ue la opcin Emitir siem#re el certificado
est seleccionada.

Para solicitar un certificado de cliente #ara la cuenta #ersonali"ada
/. Cierre la sesin en el e)uipo cliente y vuelva a iniciarla con la cuenta
personali%ada.
Esto fuer%a la creacin de un perfil de usuario para la cuenta personali%ada.
6. ;aya a la CA para solicitar un certificado de cliente. Por e-emplo, si la CA se
encuentra en el e)uipo CAerver, vaya a la siguiente ubicacin.
http://caserver/certsrv
?. Gaga clic en Solicitar un certificado y, despu's, en Si*uiente.
@. AsegFrese de )ue la opcin Certificado de usuario est seleccionada y, despu's,
,aga clic en Si*uiente.
A. Gaga clic en Enviar.
e genera una solicitud y se enva a la CA para su procesamiento.
B. 0espu's de emitirse el certificado y de )ue reciba una respuesta del servidor CA,
,aga clic en 2nstalar este certificado.
C. AsegFrese de )ue el certificado de la entidad emisora se instala como una entidad
emisora de certificados ra% de confian%a en el e)uipo local.
Para confirmarlo, lleve a cabo los siguientes pasos3
a. En la barra de tareas, ,aga clic en el botn 2nicio y, despu's, en E.ecutar.
b. Escriba mmc y, a continuacin, ,aga clic en Ace#tar.
A
c. En el menF Arc&ivo, ,aga clic en A*re*ar o uitar com#lemento.
d. Gaga clic en A*re*ar.
e. Gaga clic en Certificados y, despu's, en A*re*ar.
f. Gaga clic en Cuenta de eui#o y, despu's, en Si*uiente.
g. Gaga clic en Eui#o local: +el eui#o en el ue se e.ecuta esta consola, y,
despu's, ,aga clic en 3inali"ar.
,. Gaga clic en Cerrar y, a continuacin, en Ace#tar.
i. En el panel i%)uierdo del complemento 88C, e&panda Certificados +eui#o
local,.
-. E&panda Entidades emisoras de certificados ra4" de confian"a y, a
continuacin, ,aga clic en Certificados.
*. Confirme )ue el certificado de la CA aparece en la lista.

i no aparece, lleve a cabo los siguientes pasos3
a. ;aya a la direccin ,ttp3JJcaserverJcertsrv.
b. Gaga clic en Recu#erar el certificado de entidad emisora de certificados o
la lista de revocacin de certificados y, a continuacin, ,aga clic en
Si*uiente.
c. Gaga clic en 2nstalar esta ruta de certificacin de CA.

5. Probar el certificado de cliente con un e6#lorador
En este procedimiento se utili%ar el e&plorador para conectar con el servicio Web con el
fin de confirmar )ue no ,ay problemas con los certificados de servidor o cliente.
Para #robar el certificado de cliente con un e6#lorador
/. <tilice .nternet E&plorer para ir a la direccin
,ttps3JJserverJecure8at,J8at,.asm&.
AsegFrese de especificar 1,ttps1, ya )ue el sitio est configurado para re)uerir
L.
6. 0ebe aparecer el cuadro de dilogo Autenticacin del cliente. eleccione el
certificado de cliente y ,aga clic en Ace#tar.
?. Confirme )ue la pgina de prueba del servicio Web se muestra correctamente en
el e&plorador.
i aparece el cuadro de dilogo )ue se muestra en la ilustracin 6, necesitar
instalar el certificado de la entidad emisora en el almac'n Entidades emisoras de
certificados ra4" de confian"a, como se describi en el procedimiento anterior.
B
.
{Insert fgure: o! To ) Certifcate Alert *ialog.gi'(
.lustracin 6
Cuadro de dilogo Alerta de seguridad

7. E6#ortar el certificado de cliente a un arc&ivo
En este procedimiento se e&porta el certificado de cliente a un arc,ivo. Posteriormente,
el componente revisado lo recuperar cuando necesite pasar el certificado al servicio
Web.
Para e6#ortar el certificado de cliente a un arc&ivo
/. En .nternet E&plorer, ,aga clic en 8#ciones de 2nternet en el menF
1erramientas.
6. Gaga clic en la fic,a Contenido.
?. Gaga clic en Certificados.
@. Gaga clic en el certificado de cliente y, despu's, en E6#ortar.
A. Gaga clic en Si*uiente para pasar el cuadro de dilogo inicial del Asistente para
e&portacin de certificados.
B. Compruebe )ue est seleccionada la opcin No e6#ortar la clave #rivada y, a
continuacin, ,aga clic en Si*uiente.
C. AsegFrese de )ue est seleccionada la opcin 9ER binario codificado :.5;<
+.CER, y, despu's, ,aga clic en Si*uiente.
0ebe utili%ar este formato por)ue .!E" Krame7or* no admite los formatos Lase
B@ ni PMC =C.
D. Escriba un nombre para el arc,ivo de e&portacin. Anote la ubicacin del arc,ivo
de e&portacin .cer, ya )ue la necesitar en un procedimiento posterior.
E. Gaga clic en Si*uiente y, despu's, en 3inali"ar para e&portar el certificado.
/:. Cierre .nternet E&plorer.
//. Cierre la sesin en el e)uipo y vuelva a iniciarla con su cuenta de desarrollo
,abitual.

C
=. 9esarrollar el com#onente revisado ue se utili"a #ara
llamar al servicio Web
En este procedimiento se crea una nueva aplicacin de biblioteca de clases en C= y se
crea el componente revisado )ue se utili%a para llamar al servicio Web. e supone )ue
est traba-ando en el e)uipo cliente.
Para desarrollar el com#onente revisado ue se utili"a #ara llamar al servicio
Web
/. .nicie ;isual tudio .!E" y cree un nuevo proyecto de biblioteca de clases en C=
con el nombre WebServiceReuestor.
?. Agregue una referencia Web al servicio Web Secure'at&.
2m#ortante: debe cambiar temporalmente la configuracin del directorio virtual del
servicio Web para no re)uerir certificados de cliente #pero s re)uerir L$, antes
de agregar la referencia Web. 0espu's de agregar correctamente la referencia
Web, cambie de nuevo la configuracin del directorio virtual para re)uerir
certificados de cliente.
En la prctica, si un sitio re)uiere certificados de cliente, el editor del servicio ,ace
)ue el arc,ivo W0L est' disponible como un arc,ivo sin cone&in independiente,
)ue los consumidores #del servicio$ pueden utili%ar para crear el servidor pro&y.
En el cuadro de dilogo A*re*ar referencia Web, asegFrese de )ue utili%a &tt#s
al especificar la ubicacin del servicio Web. En caso contrario, se producir un
error por)ue el directorio virtual del servicio Web est configurado para re)uerir
L.
@. Agregue una referencia al ensamblado ystem.Enterpriseervices.
A. Cambie el nombre de class/.cs por Profile8anager.cs.
B. Agregue a Profile8anager.cs la siguiente definicin de clase #reempla%ando la
clase class/ es)ueleto$. En la clase Profile'ana*er se utili%a PJ.nvo*e para
llamar a las AP. Win?6 Load>serProfile y >nload>serProfile.
internal class ProfileManager
{
[DllImport("Userenv.dll", SetLastError=true,
CharSet=System.Runtime.InteropServices.CharSet.Auto)]
internal static extern bool LoadUserProfile(IntPtr hToken,
ref PROFILEINFO lpProfileInfo);
[DllImport("Userenv.dll", SetLastError=true,
CharSet=System.Runtime.InteropServices.CharSet.Auto)]
internal static extern bool UnloadUserProfile(IntPtr hToken,
IntPtr hProfile);
[StructLayout(LayoutKind.Sequential, CharSet=CharSet.Ansi)]
public struct PROFILEINFO
{
public int dwSize;
public int dwFlags;
public String lpUserName;
public String lpProfilePath;
D
public String lpDefaultPath;
public String lpServerName;
public String lpPolicyPath;
public IntPtr hProfile;
}
}
C. Agregue al proyecto un segundo arc,ivo de clase con el nombre
8at,erviceComponent.cs.
D. Agregue a 8at,erviceComponent.cs las siguientes instrucciones usin* deba-o
de la instruccin usin* e&istente.
using System.Net;
using System.Web.Services;
using System.Security.Principal;
using System.EnterpriseServices;
using System.Runtime.InteropServices;
using System.Security.Cryptography.X509Certificates;
using WebServiceRequestor.WebReference1;
E. Agregue la siguiente definicin de clase, )ue proporciona un m'todo
Call'at&WebService pFblico. En un procedimiento posterior se llamar a este
m'todo desde una aplicacin Web AP.!E" de cliente.
// This class calls the web service that requires a certificate.
public class MathServiceComponent : ServicedComponent
{
[DllImport("advapi32.dll", CharSet=CharSet.Auto, SetLastError=true)]
private extern static bool DuplicateToken(IntPtr ExistingTokenHandle,
int SECURITY_IMPERSONATION_LEVEL,
ref IntPtr DuplicateTokenHandle);
[DllImport("kernel32.dll", CharSet=CharSet.Auto)]
private extern static bool CloseHandle(IntPtr handle);
// Calls the Web service that requires client certificates
// certFilepath points to the .cer file to use
// url is the Web service url
// operand1 and operand2 are the parameters to pass to the Web service
public long CallMathWebService(String certFilepath,
String url, int operand1, int operand2)
{
bool retVal = false;
// Need to duplicate the token. LoadUserProfile needs a token with
// TOKEN_IMPERSONATE and TOKEN_DUPLICATE.
const int SecurityImpersonation = 2;
IntPtr dupeTokenHandle = DupeToken(WindowsIdentity.GetCurrent().Token,
SecurityImpersonation);
if(IntPtr.Zero == dupeTokenHandle)
E
{
throw new Exception("Unable to duplicate token.");
}
// Load the profile.
ProfileManager.PROFILEINFO profile = new ProfileManager.PROFILEINFO();
profile.dwSize = 32;
profile.lpUserName = @"alexmlaptop\CustomASPNET";
retVal = ProfileManager.LoadUserProfile(dupeTokenHandle, ref profile);
if(false == retVal)
{
throw new Exception("Error loading user profile. " +
Marshal.GetLastWin32Error());
}
// Instantiate the Web service proxy
math mathservice = new math();
mathservice.Url = url;
String certPath = certFilepath;
mathservice.ClientCertificates.Add(
X509Certificate.CreateFromCertFile(certPath));
long lngResult = 0;
try
{
lngResult = mathservice.Add(operand1, operand2);
}
catch(Exception ex)
{
if(ex is WebException)
{
WebException we = ex as WebException;
WebResponse webResponse = we.Response;
throw new Exception("Exception calling method. " + ex.Message);
}
}
ProfileManager.UnloadUserProfile(WindowsIdentity.GetCurrent().Token,
profile.hProfile);
CloseHandle(dupeTokenHandle);
return lngResult;
}
private IntPtr DupeToken(IntPtr token, int Level)
{
IntPtr dupeTokenHandle = new IntPtr(0);
bool retVal = DuplicateToken(token, Level, ref dupeTokenHandle);
if (false == retVal)
{
return IntPtr.Zero;
}
return dupeTokenHandle;
}
/:
} // end class
/:. En el menF (enerar, ,aga clic en (enerar solucin.

?. Confi*urar e instalar el com#onente revisado
En este procedimiento se configura el componente revisado, se genera un nombre
seguro, se instala en la cac,' de ensamblados global y se registra con CH8N.
/. Abra el arc,ivo assemblyinfo.cs y agregue la siguiente instruccin usin* deba-o de
las instrucciones usin* e&istentes.
using System.EnterpriseServices;
6. Agregue al arc,ivo assemblyinfo.cs el siguiente atributo de nivel de ensamblado
para configurar el componente revisado para )ue se e-ecute en una aplicacin de
servidor CH8N.
[assembly: ApplicationActivation(ActivationOption.Server)]
?. Abra una ventana del smbolo del sistema y cambie al directorio del proyecto
actual.
@. <tilice la ,erramienta sn.e&e para generar un arc,ivo de claves )ue contenga un
par de claves pFblica y privada.
sn.exe -k WebServiceRequestor.snk
A. ;uelva a ;isual tudio .!E".
B. En el arc,ivo assemblyinfo.cs, bus)ue el atributo (Assembl@Ae@3ile+ y
modif)uelo para )ue ,aga referencia al arc,ivo de claves )ue se encuentra en el
directorio del proyecto, como se indica a continuacin.
[assembly: AssemblyKeyFile(@"..\..\WebServiceRequestor.snk")]
C. En el menF (enerar, ,aga clic en (enerar solucin.
D. ;uelva al smbolo del sistema y e-ecute el siguiente comando para agregar el
ensamblado a la cac,' de ensamblados global.
gacutil.exe /i bin\debug\webservicerequestor.dll
E. E-ecute el siguiente comando para registrar el ensamblado con CH8N.
regsvcs bin\debug\webservicerequestor.dll
/:. .nicie Servicios de com#onentes #)ue se encuentra en el grupo de programas
1erramientas administrativas$.
//. E&panda los nodos Servicios de com#onentes, Eui#os y 'i PC.
/6. E&panda la carpeta A#licaciones C8'B.
//
/?. Gaga clic con el botn secundario en WebServiceReuestor y, a continuacin,
,aga clic en Pro#iedades.
/@. Gaga clic en la fic,a 2dentidad.
/A. eleccione la opcin Este usuario: y escriba los detalles correspondientes a la
cuenta personali%ada )ue cre anteriormente.
0e esta forma se configura la aplicacin CH8N para )ue se e-ecute con la cuenta
personali%ada.
/B. Gaga clic en Ace#tar para cerrar el cuadro de dilogo Pro#iedades.
/C. Cierre ervicios de componentes.

<. 9esarrollar una a#licacin Web #ara llamar al
com#onente revisado
En este procedimiento se crea una sencilla aplicacin Web AP.!E" )ue se utili%ar
como aplicacin cliente para llamar al servicio Web #mediante el componente revisado$.
Para desarrollar una a#licacin Web #ara llamar al com#onente revisado
/. En el e)uipo cliente del servicio Web, cree una nueva aplicacin Web AP.!E" en
C= con el nombre Secure'at&Client.
6. Agregue una referencia a ystem.Enterpriseervices.
?. Agregue una referencia al componente revisado WebServiceReuestor.
;aya al arc,ivo Webervice2e)uestor.dll )ue se encuentra en la carpeta
binOdebug dentro del directorio del proyecto WebServiceReuestor.
@. Abra el arc,ivo WebKorm/.asp&.cs y agregue la siguiente instruccin usin*
deba-o de las instrucciones usin* e&istentes.
using WebServiceRequestor;
A ;ea WebKorm/.asp& en el modo del diseIador y cree el formulario )ue se muestra
en la ilustracin ? con los siguientes .d.3
operand/
operand6
result
add

{Insert fgure: o! To " #e$Ser%iceClient+orm.gi'(
.lustracin ?
Organizacin de los controles del ormulario Web
B Gaga doble clic en Add #umar$ para crear un controlador de eventos de clic.
/6
C. Agregue al controlador de eventos el siguiente cdigo.
Nota: estable%ca la cadena certPat& en la ubicacin del arc,ivo de certificado
)ue e&port en el procedimiento B, 1E&portar el certificado de cliente a un arc,ivo1.
Configure la cadena url con la direccin <2L G""P del servicio Web.
private void add_Click(object sender, System.EventArgs e)
{
// TODO: Replace with a valid path to your certificate
string certPath = @"C:\CustomAccountCert.cer";
// TODO: Replace with a valid URL to your Web service
string url = "https://wsserver/securemath/math.asmx";
MathServiceComponent mathComp = new MathServiceComponent();

long addResult = mathComp.CallMathWebService( certPath,
url,
Int32.Parse(operand1.Text),
Int32.Parse(operand2.Text));
result.Text = addResult.ToString();
}
D. En el menF (enerar, ,aga clic en (enerar solucin.
E. E-ecute la aplicacin. Escriba dos nFmeros para sumar y, despu's, ,aga clic en
Add.
La aplicacin Web llamar al componente revisado, )ue a su ve% llamar al
servicio Web mediante L y pasar el certificado de cliente.

Recursos adicionales
Para obtener ms informacin, consulte 1Cmo3 Configurar L en un servidor Web1 en
la seccin 2eferencia de esta gua.

/?

Вам также может понравиться