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
- TypeRestriction.cs
- ServiceObjectContainer.cs
- ApplyImportsAction.cs
- MD5.cs
- EventDescriptor.cs
- SchemaTableOptionalColumn.cs
- HMACSHA512.cs
- InvalidComObjectException.cs
- FixedDocument.cs
- XmlSchemaSimpleContent.cs
- InspectionWorker.cs
- StrongNameUtility.cs
- IODescriptionAttribute.cs
- DebuggerAttributes.cs
- SHA256.cs
- SynchronizedPool.cs
- AuthenticationService.cs
- RectangleConverter.cs
- Parser.cs
- BaseValidatorDesigner.cs
- ObjectDataSourceSelectingEventArgs.cs
- RtfControlWordInfo.cs
- VectorCollection.cs
- RuntimeArgumentHandle.cs
- ChineseLunisolarCalendar.cs
- Inline.cs
- PhoneCall.cs
- MouseBinding.cs
- DeferredSelectedIndexReference.cs
- ActivationProxy.cs
- GcSettings.cs
- XamlLoadErrorInfo.cs
- SynchronousChannel.cs
- DataRowChangeEvent.cs
- MsmqIntegrationProcessProtocolHandler.cs
- XamlBrushSerializer.cs
- StringUtil.cs
- BitStack.cs
- XmlSchemaAttribute.cs
- OletxCommittableTransaction.cs
- VerificationException.cs
- DiagnosticTrace.cs
- GetPageNumberCompletedEventArgs.cs
- MediaScriptCommandRoutedEventArgs.cs
- BrowsableAttribute.cs
- PeerDefaultCustomResolverClient.cs
- Clipboard.cs
- InkCanvasSelectionAdorner.cs
- TextFormatterHost.cs
- CacheForPrimitiveTypes.cs
- JoinCqlBlock.cs
- StackSpiller.Temps.cs
- SelectionHighlightInfo.cs
- SoapRpcMethodAttribute.cs
- DatagramAdapter.cs
- Scheduling.cs
- LogLogRecordHeader.cs
- SessionViewState.cs
- WebPartHeaderCloseVerb.cs
- MouseGesture.cs
- _ChunkParse.cs
- Privilege.cs
- FileCodeGroup.cs
- Types.cs
- Baml6Assembly.cs
- SerializationAttributes.cs
- AddInController.cs
- SymLanguageVendor.cs
- DbConnectionInternal.cs
- HtmlTable.cs
- GcHandle.cs
- ModelItemDictionaryImpl.cs
- RoleServiceManager.cs
- Inline.cs
- UserMapPath.cs
- Timer.cs
- RoutedEventHandlerInfo.cs
- DecimalAnimation.cs
- CssTextWriter.cs
- WorkflowIdleElement.cs
- ParserHooks.cs
- HeaderPanel.cs
- LineGeometry.cs
- TextSelectionHelper.cs
- Executor.cs
- ZoomPercentageConverter.cs
- UmAlQuraCalendar.cs
- DesignerHost.cs
- RIPEMD160.cs
- _AutoWebProxyScriptEngine.cs
- DataGridCommandEventArgs.cs
- HtmlEmptyTagControlBuilder.cs
- EncodingNLS.cs
- Geometry.cs
- HealthMonitoringSection.cs
- AsyncInvokeOperation.cs
- PointKeyFrameCollection.cs
- WbemException.cs
- DataGridPageChangedEventArgs.cs
- TimeSpan.cs