<%@ CODEPAGE=65001 'UTF-8%> <%' certfnsh.asp - (CERT)srv web - (F)i(N)i(SH) request ' Copyright (C) Microsoft Corporation, 1998 - 1999 %> <% ' ########## BEGIN SERVER SIDE EXECUTION ########## 'Process a Certificate Request Dim nDisposition, nResult, sRequest, sAttributes, eSubmitFlag, sErrMsg On Error Resume Next ' from \nt\public\sdk\inc\certcli.h Const CR_IN_BASE64HEADER=&H0000 Const CR_IN_BASE64=&H0001 Const CR_IN_BINARY=&H0002 Const CR_IN_FORMATANY=&H0000 Const CR_IN_PKCS10=&H0100 Const CR_IN_KEYGEN=&H0200 Const CR_IN_PKCS7=&H0300 Const CR_IN_RPC=&H20000 Const CR_OUT_BASE64HEADER=&H00000000 Const CR_OUT_BASE64=&H00000001 Const CR_OUT_BINARY=&H00000002 Const CR_OUT_CHAIN=&H00000100 'Disposition code ref: \nt\public\sdk\inc\certcli.h Const CR_DISP_INCOMPLETE =0 Const CR_DISP_ERROR =1 Const CR_DISP_DENIED =2 Const CR_DISP_ISSUED =3 Const CR_DISP_ISSUED_OUT_OF_BAND=4 Const CR_DISP_UNDER_SUBMISSION =5 Const CR_DISP_REVOKED =6 Const no_disp=-1 'Stop 'debugging breakpoint Set Session("ICertRequest")=Server.CreateObject("CertificateAuthority.Request") Set ICertRequest=Session("ICertRequest") nDisposition=no_disp If "newreq"=Request.Form("Mode") Then 'New Request (PKCS #10) ' or Certificate renewal (PKCS #7) sRequest=Request.Form("CertRequest") sAttributes=Request.Form("CertAttrib") If (InStr(sRequest, "BEGIN")=0) Then eSubmitFlag=CR_IN_BASE64 Else eSubmitFlag=CR_IN_BASE64HEADER End If Err.Clear 'make sure we catch the HRESULT and not some earlier error nDisposition=ICertRequest.Submit(eSubmitFlag Or CR_IN_FORMATANY, sRequest, sAttributes, sServerConfig) 'Or CR_IN_RPC ElseIf "newreq NN"=Request.Form("Mode") Then 'New Request from Nescape sRequest=Request.Form("CertRequest") sAttributes=Request.Form("CertAttrib") Err.Clear 'make sure we catch the HRESULT and not some earlier error nDisposition=ICertRequest.Submit(CR_IN_BASE64 Or CR_IN_KEYGEN , sRequest, sAttributes, sServerConfig) 'Or CR_IN_RPC ElseIf "chkpnd"=Request.Form("Mode") Then 'Check Pending Err.Clear 'make sure we catch the HRESULT and not some earlier error nDisposition=ICertRequest.RetrievePending(Request.Form("ReqID"), sServerConfig) Else 'Unexpected mode - pass through to error handler End If nResult=Err.Number sErrMsg=Err.Description Session("nDisposition")=nDisposition Session("nResult")=nResult Session("sErrMsg")=sErrMsg 'internal redirect - transfer control to appropriate page If nDisposition=no_disp Then Server.Transfer("certrser.asp") ElseIf nDisposition=CR_DISP_INCOMPLETE Then Server.Transfer("certrser.asp") ElseIf nDisposition=CR_DISP_ERROR Then Server.Transfer("certrser.asp") ElseIf nDisposition=CR_DISP_DENIED Then Server.Transfer("certrsdn.asp") ElseIf nDisposition=CR_DISP_ISSUED Then Server.Transfer("certrsis.asp") ElseIf nDisposition=CR_DISP_ISSUED_OUT_OF_BAND Then Server.Transfer("certrsob.asp") ElseIf nDisposition=CR_DISP_UNDER_SUBMISSION Then Server.Transfer("certrspn.asp") ElseIf nDisposition=CR_DISP_REVOKED Then Server.Transfer("certrsdn.asp") 'could happen if pending->issued->revoked Else 'unknown Server.Transfer("certrser.asp") End If ' ########## END SERVER SIDE EXECUTION ########## %>