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
- SecUtil.cs
- AggregationMinMaxHelpers.cs
- DetailsViewInsertedEventArgs.cs
- Stylesheet.cs
- Size.cs
- XmlNodeList.cs
- Currency.cs
- MeasureItemEvent.cs
- WebPartHelpVerb.cs
- TypeToken.cs
- FtpRequestCacheValidator.cs
- RadialGradientBrush.cs
- ResizeGrip.cs
- RadioButtonStandardAdapter.cs
- DBSqlParserColumnCollection.cs
- PhysicalFontFamily.cs
- OciEnlistContext.cs
- WorkflowRuntimeService.cs
- SystemNetHelpers.cs
- BinaryReader.cs
- DecimalStorage.cs
- ConcurrentQueue.cs
- CodeSnippetStatement.cs
- RMEnrollmentPage2.cs
- XmlEncApr2001.cs
- MonthChangedEventArgs.cs
- ResourceDictionary.cs
- KeyConverter.cs
- SqlNodeTypeOperators.cs
- XmlSigningNodeWriter.cs
- RIPEMD160Managed.cs
- ButtonBase.cs
- GeometryGroup.cs
- CachingHintValidation.cs
- DynamicAttribute.cs
- ThreadStartException.cs
- HtmlToClrEventProxy.cs
- XmlParserContext.cs
- CodeDomConfigurationHandler.cs
- ListViewSelectEventArgs.cs
- PerfService.cs
- ModifierKeysConverter.cs
- UIAgentCrashedException.cs
- NavigateEvent.cs
- PluralizationService.cs
- CmsUtils.cs
- FirstMatchCodeGroup.cs
- ValidationEventArgs.cs
- StrokeNodeEnumerator.cs
- SourceInterpreter.cs
- OleDbDataAdapter.cs
- TrustSection.cs
- FrameworkEventSource.cs
- ACL.cs
- SqlDataRecord.cs
- EntityClassGenerator.cs
- DelayedRegex.cs
- QilXmlWriter.cs
- ProtectedConfiguration.cs
- BuildProvidersCompiler.cs
- LineSegment.cs
- ScriptDescriptor.cs
- PreservationFileWriter.cs
- SubclassTypeValidator.cs
- UrlMapping.cs
- WebPartEditorCancelVerb.cs
- CheckBoxBaseAdapter.cs
- ConvertEvent.cs
- ADMembershipProvider.cs
- CurrentChangingEventArgs.cs
- LightweightEntityWrapper.cs
- CopyAction.cs
- NumberFunctions.cs
- SettingsProperty.cs
- Shape.cs
- ComboBox.cs
- ConditionalBranch.cs
- ConstantProjectedSlot.cs
- ProgressChangedEventArgs.cs
- MutableAssemblyCacheEntry.cs
- ManifestResourceInfo.cs
- ImageListUtils.cs
- IntSecurity.cs
- HttpListenerException.cs
- DbConnectionInternal.cs
- PrimitiveCodeDomSerializer.cs
- InputScopeAttribute.cs
- MetadataPropertyCollection.cs
- DllNotFoundException.cs
- WebPartManagerInternals.cs
- OperationParameterInfoCollection.cs
- FixedDocumentSequencePaginator.cs
- DbExpressionRules.cs
- SID.cs
- HttpResponseHeader.cs
- AdornerHitTestResult.cs
- XmlILAnnotation.cs
- ProcessModuleCollection.cs
- SchemaImporterExtensionsSection.cs
- AsymmetricAlgorithm.cs