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
- KeyGestureConverter.cs
- GPStream.cs
- FlowDocumentFormatter.cs
- IndexedGlyphRun.cs
- DetailsViewRowCollection.cs
- DPCustomTypeDescriptor.cs
- DependencyObject.cs
- OleDbParameterCollection.cs
- ArgumentException.cs
- DateTimeFormatInfoScanner.cs
- StrokeFIndices.cs
- LinearGradientBrush.cs
- WebPartConnectionsConfigureVerb.cs
- ResXResourceReader.cs
- AssertUtility.cs
- DirectoryObjectSecurity.cs
- SafeHandle.cs
- SmtpLoginAuthenticationModule.cs
- StringDictionaryWithComparer.cs
- ConfigXmlAttribute.cs
- ServiceNameElementCollection.cs
- WebServiceTypeData.cs
- ApplicationHost.cs
- MultiTouchSystemGestureLogic.cs
- TemplatePartAttribute.cs
- FactoryGenerator.cs
- xmlfixedPageInfo.cs
- DownloadProgressEventArgs.cs
- Row.cs
- DiffuseMaterial.cs
- NetworkCredential.cs
- ListItemParagraph.cs
- ResXBuildProvider.cs
- ForeignConstraint.cs
- ArgumentValidation.cs
- ScrollChrome.cs
- FragmentQueryProcessor.cs
- FileDialog_Vista.cs
- SingleConverter.cs
- returneventsaver.cs
- ServiceEndpointCollection.cs
- ResXResourceSet.cs
- OciLobLocator.cs
- HtmlLinkAdapter.cs
- HGlobalSafeHandle.cs
- CqlIdentifiers.cs
- WebExceptionStatus.cs
- SmiMetaDataProperty.cs
- TokenBasedSetEnumerator.cs
- UIElementAutomationPeer.cs
- SpeechAudioFormatInfo.cs
- UInt64Storage.cs
- XsdDuration.cs
- XmlNotation.cs
- GridViewCommandEventArgs.cs
- RSAProtectedConfigurationProvider.cs
- IQueryable.cs
- figurelengthconverter.cs
- CacheChildrenQuery.cs
- ResourceSetExpression.cs
- TreeViewTemplateSelector.cs
- PartitionerStatic.cs
- CodeExporter.cs
- NullableIntAverageAggregationOperator.cs
- MetabaseServerConfig.cs
- XsltContext.cs
- TextEditorCopyPaste.cs
- HtmlSelect.cs
- ExpressionHelper.cs
- Transform3DGroup.cs
- CompressionTracing.cs
- XmlSerializerVersionAttribute.cs
- CodeDomExtensionMethods.cs
- WebBrowsableAttribute.cs
- IEnumerable.cs
- AssociatedControlConverter.cs
- TablePatternIdentifiers.cs
- ExplicitDiscriminatorMap.cs
- TableCellsCollectionEditor.cs
- DeviceContext.cs
- ResourcesBuildProvider.cs
- TextCompositionManager.cs
- AccessViolationException.cs
- LayoutInformation.cs
- StatusBarPanelClickEvent.cs
- UpdatePanel.cs
- DependencyPropertyConverter.cs
- HtmlUtf8RawTextWriter.cs
- ConfigXmlSignificantWhitespace.cs
- ResourceWriter.cs
- XmlCharCheckingWriter.cs
- GeneralTransform2DTo3DTo2D.cs
- CreateUserWizard.cs
- HtmlForm.cs
- DynamicUpdateCommand.cs
- BindingManagerDataErrorEventArgs.cs
- httpserverutility.cs
- ExtentCqlBlock.cs
- CroppedBitmap.cs
- DesignerSerializationVisibilityAttribute.cs