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
- CriticalFinalizerObject.cs
- PrintPreviewControl.cs
- ManipulationPivot.cs
- BrushValueSerializer.cs
- CodeParameterDeclarationExpressionCollection.cs
- IndexerNameAttribute.cs
- SecurityTokenProviderContainer.cs
- MsmqIntegrationSecurityMode.cs
- DataServiceRequestOfT.cs
- TextCompositionEventArgs.cs
- XdrBuilder.cs
- ZipFileInfoCollection.cs
- HtmlTable.cs
- SimpleRecyclingCache.cs
- DiscoveryDocumentReference.cs
- Label.cs
- ControlPersister.cs
- WebBrowserProgressChangedEventHandler.cs
- DocumentXPathNavigator.cs
- Container.cs
- SchemaType.cs
- CodeDirectionExpression.cs
- QilPatternVisitor.cs
- Stack.cs
- BaseParaClient.cs
- UnknownBitmapEncoder.cs
- TabControl.cs
- mactripleDES.cs
- DependencyObjectPropertyDescriptor.cs
- ImmComposition.cs
- NativeMethods.cs
- LineGeometry.cs
- storagemappingitemcollection.viewdictionary.cs
- WebProxyScriptElement.cs
- SelectManyQueryOperator.cs
- SystemEvents.cs
- EasingKeyFrames.cs
- BaseTreeIterator.cs
- AuthenticationConfig.cs
- ReferentialConstraint.cs
- PointLight.cs
- TextInfo.cs
- DbTypeMap.cs
- ServerIdentity.cs
- ChannelSettingsElement.cs
- XamlSerializerUtil.cs
- SerializationObjectManager.cs
- XmlSchemaIdentityConstraint.cs
- TextDecorationUnitValidation.cs
- TPLETWProvider.cs
- WebConfigurationHost.cs
- CommandHelper.cs
- UnsafeNativeMethods.cs
- Assert.cs
- PermissionListSet.cs
- HtmlForm.cs
- FormViewUpdatedEventArgs.cs
- DBNull.cs
- MimeMapping.cs
- ConstNode.cs
- DllNotFoundException.cs
- TreeViewImageGenerator.cs
- OutOfProcStateClientManager.cs
- GridViewSelectEventArgs.cs
- BaseCollection.cs
- SQLString.cs
- ContravarianceAdapter.cs
- Animatable.cs
- LOSFormatter.cs
- Events.cs
- TextFindEngine.cs
- RelationshipNavigation.cs
- AssemblyBuilder.cs
- AudioException.cs
- SystemIPv6InterfaceProperties.cs
- Int64Converter.cs
- XmlSchemaImporter.cs
- TextRangeSerialization.cs
- MessageHeaderException.cs
- DependencyPropertyKey.cs
- VisualTarget.cs
- ObjectManager.cs
- JapaneseCalendar.cs
- MetadataArtifactLoaderComposite.cs
- StrokeCollectionConverter.cs
- SmtpDateTime.cs
- LoginView.cs
- BlurBitmapEffect.cs
- EncodedStreamFactory.cs
- ObjectDataSourceView.cs
- WindowsListView.cs
- SelectManyQueryOperator.cs
- TrackBarDesigner.cs
- TextEffectResolver.cs
- Attributes.cs
- SHA512Managed.cs
- ElementProxy.cs
- ListDictionary.cs
- DataSourceCache.cs
- GroupBoxRenderer.cs