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
- ResourceAssociationSetEnd.cs
- EventProvider.cs
- SelectedDatesCollection.cs
- SQLMembershipProvider.cs
- BulletChrome.cs
- NominalTypeEliminator.cs
- WindowsIdentity.cs
- BamlVersionHeader.cs
- OleDbPermission.cs
- ActivityStatusChangeEventArgs.cs
- DependencyObjectPropertyDescriptor.cs
- SystemIPGlobalStatistics.cs
- BufferedGraphicsContext.cs
- ModuleConfigurationInfo.cs
- ObfuscationAttribute.cs
- WebPartTransformerAttribute.cs
- DataGridCellsPresenter.cs
- ISessionStateStore.cs
- XmlMapping.cs
- SinglePageViewer.cs
- WindowsFormsHostAutomationPeer.cs
- DefaultPropertiesToSend.cs
- WebRequestModuleElement.cs
- XmlAttributeCollection.cs
- WebHttpBinding.cs
- UnsafeNativeMethods.cs
- ExpressionBuilderCollection.cs
- Visual3DCollection.cs
- CommonDialog.cs
- TextInfo.cs
- RC2.cs
- Int64Converter.cs
- HttpCapabilitiesEvaluator.cs
- EnumValidator.cs
- EpmTargetTree.cs
- UnknownBitmapDecoder.cs
- SerializationInfoEnumerator.cs
- LZCodec.cs
- cryptoapiTransform.cs
- baseaxisquery.cs
- ThicknessKeyFrameCollection.cs
- DesignerActionItemCollection.cs
- XmlException.cs
- ImplicitInputBrush.cs
- SqlCommandBuilder.cs
- followingsibling.cs
- ResourcePermissionBaseEntry.cs
- SystemWebSectionGroup.cs
- GAC.cs
- InternalConfigRoot.cs
- ScriptServiceAttribute.cs
- ColorPalette.cs
- BitmapDecoder.cs
- TextBlock.cs
- PageFunction.cs
- ApplicationCommands.cs
- Inline.cs
- Equal.cs
- ApplicationInfo.cs
- ProxyWebPart.cs
- FlowDocumentPageViewerAutomationPeer.cs
- PlainXmlDeserializer.cs
- BamlLocalizationDictionary.cs
- SecurityResources.cs
- PolyBezierSegment.cs
- Encoder.cs
- ProjectionNode.cs
- TextEditorCharacters.cs
- DelegateBodyWriter.cs
- FigureParagraph.cs
- XmlSchemaDatatype.cs
- Model3D.cs
- DbSetClause.cs
- TabletCollection.cs
- Content.cs
- LocationSectionRecord.cs
- WindowsListView.cs
- DuplicateWaitObjectException.cs
- ComboBoxItem.cs
- MustUnderstandBehavior.cs
- XmlNamespaceDeclarationsAttribute.cs
- PersonalizationProviderCollection.cs
- SqlDataSourceDesigner.cs
- ExternalDataExchangeService.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- LoginUtil.cs
- XmlUtil.cs
- HWStack.cs
- Parsers.cs
- KeyValuePairs.cs
- AnimationException.cs
- ExpanderAutomationPeer.cs
- BitHelper.cs
- Internal.cs
- ContextDataSourceContextData.cs
- NativeMethods.cs
- CodeExporter.cs
- DesignTimeValidationFeature.cs
- TableCell.cs
- DataListItem.cs