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
- Pair.cs
- CharEnumerator.cs
- DeclarationUpdate.cs
- DBCSCodePageEncoding.cs
- FileVersion.cs
- DeclaredTypeElement.cs
- Separator.cs
- FixedTextContainer.cs
- TransportConfigurationTypeElementCollection.cs
- SemanticAnalyzer.cs
- EntitySqlQueryBuilder.cs
- TextFormatterHost.cs
- InlineObject.cs
- EventRoute.cs
- XmlDomTextWriter.cs
- RuntimeResourceSet.cs
- FrugalMap.cs
- VirtualDirectoryMappingCollection.cs
- TagMapInfo.cs
- ZoneMembershipCondition.cs
- TextMarkerSource.cs
- DynamicDataManager.cs
- RecordConverter.cs
- ClientRuntimeConfig.cs
- ExpressionBuilderCollection.cs
- NavigationPropertyEmitter.cs
- XmlRootAttribute.cs
- RijndaelManaged.cs
- RangeValidator.cs
- BooleanAnimationUsingKeyFrames.cs
- AlternateView.cs
- TextElementEnumerator.cs
- SerializationSectionGroup.cs
- BatchServiceHost.cs
- ArrayTypeMismatchException.cs
- DbLambda.cs
- RawKeyboardInputReport.cs
- EnumConverter.cs
- QueryOptionExpression.cs
- MappingItemCollection.cs
- XmlArrayAttribute.cs
- JsonDeserializer.cs
- ConfigUtil.cs
- RemotingAttributes.cs
- DSASignatureFormatter.cs
- LinqToSqlWrapper.cs
- PointCollection.cs
- WmlControlAdapter.cs
- InfoCardHelper.cs
- IteratorFilter.cs
- UrlPropertyAttribute.cs
- RangeContentEnumerator.cs
- TableFieldsEditor.cs
- DataGridViewEditingControlShowingEventArgs.cs
- AutoResizedEvent.cs
- DataGridViewSortCompareEventArgs.cs
- ControlOperationInvoker.cs
- EdmItemCollection.cs
- StatusBarAutomationPeer.cs
- MetaData.cs
- SystemDropShadowChrome.cs
- EditorPartCollection.cs
- AssemblyCache.cs
- XDeferredAxisSource.cs
- BindingExpressionUncommonField.cs
- DynamicResourceExtensionConverter.cs
- HitTestResult.cs
- PropertyToken.cs
- SettingsPropertyWrongTypeException.cs
- SqlMethodCallConverter.cs
- RecordManager.cs
- CacheOutputQuery.cs
- DataServiceOperationContext.cs
- Label.cs
- SafeNativeMethods.cs
- AttributedMetaModel.cs
- BulletedList.cs
- NonSerializedAttribute.cs
- MultipleViewPattern.cs
- X509SecurityTokenAuthenticator.cs
- ModelService.cs
- RightsManagementPermission.cs
- TreeNodeStyleCollection.cs
- ToolStripRendererSwitcher.cs
- RestHandlerFactory.cs
- DoubleAnimationUsingPath.cs
- PropertyGeneratedEventArgs.cs
- AssertSection.cs
- BackEase.cs
- XmlIgnoreAttribute.cs
- AliasedSlot.cs
- X509InitiatorCertificateClientElement.cs
- Tool.cs
- WebBaseEventKeyComparer.cs
- ListControlConvertEventArgs.cs
- Literal.cs
- SrgsOneOf.cs
- TextTabProperties.cs
- CodeObjectCreateExpression.cs
- ProxyWebPart.cs