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
- HwndPanningFeedback.cs
- NonBatchDirectoryCompiler.cs
- ProfileGroupSettings.cs
- ContractSearchPattern.cs
- StringFunctions.cs
- HashCryptoHandle.cs
- AutoGeneratedField.cs
- XmlSerializableWriter.cs
- DataGridViewCellToolTipTextNeededEventArgs.cs
- AnonymousIdentificationModule.cs
- BaseResourcesBuildProvider.cs
- EncoderBestFitFallback.cs
- SymmetricCryptoHandle.cs
- PeerCollaboration.cs
- SQLResource.cs
- TypeTypeConverter.cs
- DataListItemEventArgs.cs
- ViewLoader.cs
- LineServices.cs
- HttpHandlersInstallComponent.cs
- SqlProfileProvider.cs
- CookielessHelper.cs
- ErrorStyle.cs
- SaveFileDialog.cs
- DataGridTable.cs
- ToolStripDesignerUtils.cs
- DesignerImageAdapter.cs
- SQLString.cs
- ECDiffieHellman.cs
- ScaleTransform.cs
- FixedSOMImage.cs
- Model3DGroup.cs
- SqlUDTStorage.cs
- BitmapInitialize.cs
- SystemDiagnosticsSection.cs
- FastEncoder.cs
- odbcmetadatafactory.cs
- ContextMenuStrip.cs
- ISO2022Encoding.cs
- DataGridCell.cs
- ContainerCodeDomSerializer.cs
- CompositeTypefaceMetrics.cs
- HttpProfileGroupBase.cs
- _Events.cs
- MouseCaptureWithinProperty.cs
- ContractDescription.cs
- ButtonField.cs
- DesignerWidgets.cs
- ProxyManager.cs
- XmlTextReader.cs
- TextLineResult.cs
- SimpleWorkerRequest.cs
- DragEventArgs.cs
- CatalogPart.cs
- StreamReader.cs
- WindowsStatusBar.cs
- SplayTreeNode.cs
- CodeDOMUtility.cs
- TileBrush.cs
- Pkcs7Recipient.cs
- SmtpReplyReader.cs
- SpinWait.cs
- CompleteWizardStep.cs
- CodeTryCatchFinallyStatement.cs
- DynamicFilterExpression.cs
- AddingNewEventArgs.cs
- ProfilePropertySettingsCollection.cs
- DetailsView.cs
- FormViewPagerRow.cs
- AutoGeneratedField.cs
- ContentTextAutomationPeer.cs
- DiscoveryMessageSequenceGenerator.cs
- ContentPathSegment.cs
- View.cs
- CodeSnippetStatement.cs
- WebBrowserSiteBase.cs
- AvTraceDetails.cs
- DodSequenceMerge.cs
- documentsequencetextview.cs
- WebConvert.cs
- XmlObjectSerializerWriteContext.cs
- FieldBuilder.cs
- SqlMethodTransformer.cs
- ProxyManager.cs
- CryptoConfig.cs
- SpecularMaterial.cs
- CompilerScopeManager.cs
- DataViewSetting.cs
- EditorServiceContext.cs
- DataProtection.cs
- CounterCreationData.cs
- Sql8ExpressionRewriter.cs
- UserPreferenceChangedEventArgs.cs
- WebPartVerbCollection.cs
- IncrementalHitTester.cs
- ShaderEffect.cs
- ImageEditor.cs
- BuildProvidersCompiler.cs
- Literal.cs
- ThousandthOfEmRealDoubles.cs