Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WCF / Tools / WSATConfig / Configuration / WsatServiceAddress.cs / 1305376 / WsatServiceAddress.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace Microsoft.Tools.ServiceModel.WsatConfig { using System; using System.Globalization; using System.Runtime.InteropServices; class WsatServiceAddress { uint port; string wsatServiceAddress; const string wsatServiceAddressFormat = "https://+:{0}/WsatService/"; const string wsatSecurityDescriptor = "D:(A;;GA;;;NS)"; internal WsatServiceAddress(uint port) { this.port = port; wsatServiceAddress = String.Format(CultureInfo.InvariantCulture, wsatServiceAddressFormat, this.port); } internal void ReserveWsatServiceAddress() { if (Utilities.IsHttpApiLibAvailable) { ReserveURL(wsatServiceAddress, wsatSecurityDescriptor); } } internal void FreeWsatServiceAddress() { if (Utilities.IsHttpApiLibAvailable) { FreeURL(wsatServiceAddress, wsatSecurityDescriptor); } } static void ReserveURL(string networkURL, string securityDescriptor) { int retVal = SafeNativeMethods.NoError; try { retVal = SafeNativeMethods.HttpInitialize(HttpWrapper.HttpApiVersion1, SafeNativeMethods.HTTP_INITIALIZE_CONFIG, IntPtr.Zero); if (SafeNativeMethods.NoError == retVal) { HttpServiceConfigUrlAclKey keyDesc = new HttpServiceConfigUrlAclKey(networkURL); HttpServiceConfigUrlAclParam paramDesc = new HttpServiceConfigUrlAclParam(securityDescriptor); HttpServiceConfigUrlAclSet configInformation = new HttpServiceConfigUrlAclSet(); configInformation.KeyDesc = keyDesc; configInformation.ParamDesc = paramDesc; int configInformationLength = Marshal.SizeOf(configInformation); retVal = SafeNativeMethods.HttpSetServiceConfiguration_UrlAcl(IntPtr.Zero, HttpServiceConfigId.HttpServiceConfigUrlAclInfo, ref configInformation, configInformationLength, IntPtr.Zero); if (SafeNativeMethods.ErrorAlreadyExists == retVal) { retVal = SafeNativeMethods.HttpDeleteServiceConfiguration_UrlAcl(IntPtr.Zero, HttpServiceConfigId.HttpServiceConfigUrlAclInfo, ref configInformation, configInformationLength, IntPtr.Zero); if (SafeNativeMethods.NoError == retVal) { retVal = SafeNativeMethods.HttpSetServiceConfiguration_UrlAcl(IntPtr.Zero, HttpServiceConfigId.HttpServiceConfigUrlAclInfo, ref configInformation, configInformationLength, IntPtr.Zero); } } } } finally { SafeNativeMethods.HttpTerminate(SafeNativeMethods.HTTP_INITIALIZE_CONFIG, IntPtr.Zero); } if (SafeNativeMethods.NoError != retVal) { if (SafeNativeMethods.ErrorAlreadyExists == retVal) { throw new WsatAdminException(WsatAdminErrorCode.REGISTER_HTTPS_PORT_ALREADYEXISTS, SR.GetString(SR.ErrorRegisterHttpsPortAlreadyExists)); } else { throw new WsatAdminException(WsatAdminErrorCode.REGISTER_HTTPS_PORT, SR.GetString(SR.ErrorRegisterHttpsPort, retVal)); } } } static void FreeURL(string networkURL, string securityDescriptor) { int retVal = SafeNativeMethods.NoError; try { retVal = SafeNativeMethods.HttpInitialize(HttpWrapper.HttpApiVersion1, SafeNativeMethods.HTTP_INITIALIZE_CONFIG, IntPtr.Zero); if (SafeNativeMethods.NoError == retVal) { HttpServiceConfigUrlAclKey urlAclKey = new HttpServiceConfigUrlAclKey(networkURL); HttpServiceConfigUrlAclParam urlAclParam = new HttpServiceConfigUrlAclParam(securityDescriptor); HttpServiceConfigUrlAclSet configInformation = new HttpServiceConfigUrlAclSet(); configInformation.KeyDesc = urlAclKey; configInformation.ParamDesc = urlAclParam; int configInformationSize = Marshal.SizeOf(configInformation); retVal = SafeNativeMethods.HttpDeleteServiceConfiguration_UrlAcl(IntPtr.Zero, HttpServiceConfigId.HttpServiceConfigUrlAclInfo, ref configInformation, configInformationSize, IntPtr.Zero); } } finally { SafeNativeMethods.HttpTerminate(SafeNativeMethods.HTTP_INITIALIZE_CONFIG, IntPtr.Zero); } if (retVal != SafeNativeMethods.NoError && retVal != SafeNativeMethods.FileNotFound && retVal != SafeNativeMethods.ErrorInvalidParameter) { throw new WsatAdminException(WsatAdminErrorCode.UNREGISTER_HTTPS_PORT, SR.GetString(SR.ErrorUnregisterHttpsPort, retVal)); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CodeDomSerializerBase.cs
- HtmlInputText.cs
- EffectiveValueEntry.cs
- Scripts.cs
- ContextBase.cs
- SecurityVersion.cs
- QuaternionAnimationBase.cs
- ExternalException.cs
- ConditionalWeakTable.cs
- ClosableStream.cs
- RowToFieldTransformer.cs
- SelectionPattern.cs
- Mouse.cs
- ErrorBehavior.cs
- MultiSelectRootGridEntry.cs
- ContentControl.cs
- Stack.cs
- HtmlAnchor.cs
- DisplayInformation.cs
- DropSourceBehavior.cs
- XmlBinaryReaderSession.cs
- PrincipalPermission.cs
- XmlComment.cs
- HttpListener.cs
- TextRange.cs
- SystemBrushes.cs
- DataMemberAttribute.cs
- RegexInterpreter.cs
- HttpRequest.cs
- GC.cs
- GeometryDrawing.cs
- ProtocolElement.cs
- DictationGrammar.cs
- OperationBehaviorAttribute.cs
- DataSourceControl.cs
- SafeEventLogReadHandle.cs
- Wildcard.cs
- XomlCompilerHelpers.cs
- DropShadowEffect.cs
- DefinitionBase.cs
- sitestring.cs
- SchemaExporter.cs
- IImplicitResourceProvider.cs
- AnimatedTypeHelpers.cs
- MatrixTransform3D.cs
- PeerNameRecord.cs
- ObjectViewListener.cs
- arabicshape.cs
- FontFamily.cs
- ConfigXmlElement.cs
- SystemWebExtensionsSectionGroup.cs
- MessagePartProtectionMode.cs
- EditorZoneBase.cs
- DrawListViewSubItemEventArgs.cs
- XmlSchemaAttributeGroup.cs
- AssertFilter.cs
- FormClosingEvent.cs
- MarshalDirectiveException.cs
- SendMailErrorEventArgs.cs
- LocalizableResourceBuilder.cs
- NetMsmqSecurityElement.cs
- TcpAppDomainProtocolHandler.cs
- GeneratedContractType.cs
- ProgressBar.cs
- ClientRoleProvider.cs
- EditorZoneBase.cs
- BindingWorker.cs
- EntitySqlQueryCacheKey.cs
- Thumb.cs
- NameValueFileSectionHandler.cs
- SchemaEntity.cs
- HttpCookie.cs
- SafeNativeMethodsMilCoreApi.cs
- ActivityInstance.cs
- MessageHeaderInfoTraceRecord.cs
- WebBodyFormatMessageProperty.cs
- OleDbReferenceCollection.cs
- LocalizableAttribute.cs
- CompModHelpers.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- Bits.cs
- GradientStop.cs
- CodeArrayIndexerExpression.cs
- BuildResult.cs
- RawTextInputReport.cs
- ViewGenerator.cs
- ConfigXmlCDataSection.cs
- KeyboardNavigation.cs
- OciHandle.cs
- ProfileProvider.cs
- FormatterConverter.cs
- ImageCodecInfoPrivate.cs
- OleDbInfoMessageEvent.cs
- XmlNamespaceDeclarationsAttribute.cs
- Events.cs
- InputMethodStateChangeEventArgs.cs
- TextServicesPropertyRanges.cs
- Pointer.cs
- OleDbTransaction.cs
- WorkflowRuntimeEndpoint.cs