Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / Tools / WSATConfig / Configuration / WsatServiceAddress.cs / 1 / 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. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DefaultSettingsSection.cs
- HttpServerProtocol.cs
- NullExtension.cs
- GPStream.cs
- ProfileEventArgs.cs
- UniqueTransportManagerRegistration.cs
- RoleService.cs
- CollectionView.cs
- XmlSchemaValidationException.cs
- XpsS0ValidatingLoader.cs
- TextRenderer.cs
- HotSpotCollection.cs
- XamlBrushSerializer.cs
- HostingEnvironment.cs
- SessionStateSection.cs
- WorkflowServiceInstance.cs
- DataGridViewColumnDividerDoubleClickEventArgs.cs
- HostProtectionPermission.cs
- DataSetUtil.cs
- QueryReaderSettings.cs
- InternalEnumValidatorAttribute.cs
- InternalReceiveMessage.cs
- SupportsPreviewControlAttribute.cs
- HyperLinkField.cs
- WorkflowInstanceTerminatedRecord.cs
- PeerNameRegistration.cs
- XmlRootAttribute.cs
- ToolStripSeparator.cs
- BitmapEffectDrawingContent.cs
- AssociationTypeEmitter.cs
- BuildManagerHost.cs
- CollectionBuilder.cs
- RawStylusSystemGestureInputReport.cs
- PageSettings.cs
- MenuItemBinding.cs
- MediaContext.cs
- PropertyChangedEventManager.cs
- Context.cs
- _ConnectionGroup.cs
- TagPrefixAttribute.cs
- QueryGenerator.cs
- MD5CryptoServiceProvider.cs
- HWStack.cs
- OpenTypeLayout.cs
- TraceListener.cs
- ConfigurationManager.cs
- ImageInfo.cs
- Visitor.cs
- WindowsAuthenticationModule.cs
- StringValidatorAttribute.cs
- ToggleButtonAutomationPeer.cs
- UInt16Converter.cs
- FontWeight.cs
- EventDrivenDesigner.cs
- InputQueueChannel.cs
- Converter.cs
- DataControlFieldCell.cs
- AssemblyBuilderData.cs
- KeyMatchBuilder.cs
- XmlArrayItemAttribute.cs
- BackgroundWorker.cs
- Vector3DCollectionConverter.cs
- _ListenerAsyncResult.cs
- ParserOptions.cs
- FormView.cs
- DbTransaction.cs
- ContextMenu.cs
- MetadataItem.cs
- ProjectionCamera.cs
- OpenTypeLayout.cs
- SqlDataSourceView.cs
- SecurityRuntime.cs
- ToolStripRenderer.cs
- base64Transforms.cs
- KeyboardNavigation.cs
- ScriptingAuthenticationServiceSection.cs
- EventLogRecord.cs
- BaseConfigurationRecord.cs
- ModelEditingScope.cs
- IntegerValidatorAttribute.cs
- XmlNodeChangedEventArgs.cs
- KeyGesture.cs
- MasterPageCodeDomTreeGenerator.cs
- RightsManagementEncryptionTransform.cs
- CachingHintValidation.cs
- Listbox.cs
- Help.cs
- XPathCompileException.cs
- WebResourceUtil.cs
- AssemblyFilter.cs
- Win32Native.cs
- SmiEventSink_DeferedProcessing.cs
- QueryContext.cs
- BatchParser.cs
- DbProviderServices.cs
- WebSysDefaultValueAttribute.cs
- DependencyPropertyValueSerializer.cs
- SynthesizerStateChangedEventArgs.cs
- SizeIndependentAnimationStorage.cs
- SimpleTableProvider.cs