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
- DropDownList.cs
- QueueProcessor.cs
- ConfigXmlElement.cs
- FileDialogCustomPlacesCollection.cs
- IItemContainerGenerator.cs
- RegistryKey.cs
- ManagementObjectSearcher.cs
- BitmapEffectGroup.cs
- WmiPutTraceRecord.cs
- LogRestartAreaEnumerator.cs
- SqlBuilder.cs
- ThreadStartException.cs
- StrongNameMembershipCondition.cs
- SystemInfo.cs
- PersistStreamTypeWrapper.cs
- ViewBase.cs
- CalculatedColumn.cs
- TreeBuilder.cs
- Wizard.cs
- MetaColumn.cs
- TextServicesLoader.cs
- DelegateArgumentReference.cs
- AssemblyHash.cs
- ECDiffieHellman.cs
- LinkConverter.cs
- NamespaceEmitter.cs
- ModifierKeysValueSerializer.cs
- RegexNode.cs
- LayoutInformation.cs
- IPEndPoint.cs
- TerminatorSinks.cs
- AuthenticationConfig.cs
- DetailsViewAutoFormat.cs
- DrawingGroup.cs
- ActivationServices.cs
- GlyphElement.cs
- CodeEventReferenceExpression.cs
- SecurityDescriptor.cs
- ConnectorRouter.cs
- ResourceLoader.cs
- ComponentTray.cs
- HttpFileCollection.cs
- Processor.cs
- IconEditor.cs
- XmlSchemaAnnotated.cs
- ToolBarTray.cs
- HostingEnvironmentException.cs
- WebPartZoneCollection.cs
- Utils.cs
- RTLAwareMessageBox.cs
- XmlQueryOutput.cs
- AmbientValueAttribute.cs
- InstanceDescriptor.cs
- DataGridViewSortCompareEventArgs.cs
- XmlSchema.cs
- GB18030Encoding.cs
- SemanticResolver.cs
- ButtonField.cs
- OnOperation.cs
- PointHitTestResult.cs
- TdsParserStateObject.cs
- StreamUpgradeInitiator.cs
- SplashScreenNativeMethods.cs
- FreeFormDesigner.cs
- TimelineCollection.cs
- ImmutableCommunicationTimeouts.cs
- DetailsViewInsertedEventArgs.cs
- DefaultPrintController.cs
- LinqDataSourceUpdateEventArgs.cs
- PtsPage.cs
- NameTable.cs
- XmlUnspecifiedAttribute.cs
- MarkupProperty.cs
- SQLBinaryStorage.cs
- Application.cs
- InputDevice.cs
- EntityDataSourceState.cs
- Cell.cs
- OperatingSystemVersionCheck.cs
- ListDictionary.cs
- RoutedEventHandlerInfo.cs
- XmlSchemaSet.cs
- BasicBrowserDialog.designer.cs
- PropertyDescriptorCollection.cs
- IsolatedStorageFileStream.cs
- XmlComment.cs
- VisualBrush.cs
- PerformanceCountersElement.cs
- URI.cs
- ObjectSecurity.cs
- DataSysAttribute.cs
- Update.cs
- Assembly.cs
- WinFormsComponentEditor.cs
- BindingWorker.cs
- Int64Converter.cs
- DurationConverter.cs
- DataDocumentXPathNavigator.cs
- CursorConverter.cs
- DbConnectionOptions.cs