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
- RenderDataDrawingContext.cs
- FormViewUpdatedEventArgs.cs
- MarshalByRefObject.cs
- SmtpMail.cs
- LinkUtilities.cs
- ServiceEndpointElementCollection.cs
- OracleRowUpdatedEventArgs.cs
- RunInstallerAttribute.cs
- SerializationStore.cs
- NodeFunctions.cs
- DetailsViewCommandEventArgs.cs
- HandlerFactoryWrapper.cs
- ScriptingAuthenticationServiceSection.cs
- XmlValueConverter.cs
- ConfigXmlElement.cs
- TransportContext.cs
- ClientCultureInfo.cs
- MeshGeometry3D.cs
- EdmItemCollection.cs
- NativeMethods.cs
- ApplicationActivator.cs
- SingleQueryOperator.cs
- ActiveXHelper.cs
- Expressions.cs
- ProviderCommandInfoUtils.cs
- DuplicateWaitObjectException.cs
- DataGridViewAutoSizeModeEventArgs.cs
- ForceCopyBuildProvider.cs
- CustomErrorsSection.cs
- PasswordTextNavigator.cs
- ScrollChrome.cs
- MulticastDelegate.cs
- XslTransform.cs
- X509ChainPolicy.cs
- BitmapDecoder.cs
- FontUnit.cs
- ExpandedWrapper.cs
- AddInSegmentDirectoryNotFoundException.cs
- HandledMouseEvent.cs
- OptionalColumn.cs
- MediaPlayer.cs
- StdValidatorsAndConverters.cs
- XmlSchemaInferenceException.cs
- _TLSstream.cs
- PlanCompilerUtil.cs
- ResizeGrip.cs
- SelfSignedCertificate.cs
- KnownTypesHelper.cs
- _AutoWebProxyScriptWrapper.cs
- QueryAccessibilityHelpEvent.cs
- PreviewPageInfo.cs
- DataGridColumnHeaderAutomationPeer.cs
- XmlSchemaSimpleContent.cs
- Rectangle.cs
- SafeHandles.cs
- ConfigUtil.cs
- DataColumnChangeEvent.cs
- QueueProcessor.cs
- IndependentAnimationStorage.cs
- MatrixCamera.cs
- SmtpFailedRecipientsException.cs
- ExpressionBindings.cs
- BehaviorEditorPart.cs
- SchemaCollectionCompiler.cs
- ExpressionWriter.cs
- XmlNodeList.cs
- HtmlObjectListAdapter.cs
- DependencySource.cs
- FontWeightConverter.cs
- SiteMap.cs
- BitmapEffectGroup.cs
- XPathSingletonIterator.cs
- AsymmetricKeyExchangeFormatter.cs
- TextEmbeddedObject.cs
- TransformDescriptor.cs
- SerializationSectionGroup.cs
- ParenthesizePropertyNameAttribute.cs
- MenuScrollingVisibilityConverter.cs
- DesignerSerializationVisibilityAttribute.cs
- FtpWebRequest.cs
- FlowDocumentScrollViewer.cs
- ClassData.cs
- QuestionEventArgs.cs
- DataGridBoolColumn.cs
- UriWriter.cs
- TextElementEnumerator.cs
- Pair.cs
- TableLayoutPanelDesigner.cs
- ArgumentException.cs
- HtmlButton.cs
- Model3D.cs
- Point3DCollection.cs
- CheckBoxStandardAdapter.cs
- LinkUtilities.cs
- XmlNamespaceMapping.cs
- InvokeMethod.cs
- OutOfProcStateClientManager.cs
- CancelEventArgs.cs
- ActiveXSite.cs
- UrlAuthFailedErrorFormatter.cs