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
- DynamicUpdateCommand.cs
- ReceiveActivityDesigner.cs
- DataServiceClientException.cs
- WebPartEditorOkVerb.cs
- AsymmetricSignatureFormatter.cs
- OleDbCommandBuilder.cs
- LabelLiteral.cs
- HitTestResult.cs
- WebServiceClientProxyGenerator.cs
- DataProtection.cs
- CodeParameterDeclarationExpression.cs
- SocketStream.cs
- XmlILIndex.cs
- PatternMatcher.cs
- CryptoStream.cs
- ApplicationSettingsBase.cs
- XmlWellformedWriter.cs
- CallbackValidator.cs
- DataGridRow.cs
- WebProxyScriptElement.cs
- FilterException.cs
- XPathNodeList.cs
- Simplifier.cs
- SocketAddress.cs
- NativeMethods.cs
- OleDbInfoMessageEvent.cs
- RegexBoyerMoore.cs
- DropDownList.cs
- XPathBinder.cs
- ServerType.cs
- _SpnDictionary.cs
- XmlNodeChangedEventManager.cs
- BStrWrapper.cs
- UrlMapping.cs
- PromptBuilder.cs
- PersistenceTypeAttribute.cs
- ClonableStack.cs
- SeverityFilter.cs
- AppSettingsExpressionBuilder.cs
- Subset.cs
- FieldAccessException.cs
- XhtmlBasicLabelAdapter.cs
- DataGridTextBoxColumn.cs
- DeploymentSectionCache.cs
- QueueSurrogate.cs
- InputChannelBinder.cs
- CodeCommentStatement.cs
- TemplateNodeContextMenu.cs
- PackageRelationship.cs
- BoundsDrawingContextWalker.cs
- XPathNavigatorReader.cs
- SizeConverter.cs
- LinearGradientBrush.cs
- CodeDomSerializerException.cs
- SmiTypedGetterSetter.cs
- FileDialog.cs
- CompilerErrorCollection.cs
- Intellisense.cs
- SQLDecimal.cs
- Interop.cs
- GradientStop.cs
- SystemIPv4InterfaceProperties.cs
- NumericExpr.cs
- WaitingCursor.cs
- IgnorePropertiesAttribute.cs
- WebPartConnectionCollection.cs
- ToolBarButtonClickEvent.cs
- RegisteredArrayDeclaration.cs
- _AutoWebProxyScriptHelper.cs
- HMACRIPEMD160.cs
- TableStyle.cs
- EntityContainerRelationshipSetEnd.cs
- SapiGrammar.cs
- ArgumentNullException.cs
- AnnotationMap.cs
- XmlSchemaSimpleContent.cs
- RuntimeUtils.cs
- ReadOnlyPermissionSet.cs
- Quaternion.cs
- AesCryptoServiceProvider.cs
- ToolStripDropDownButton.cs
- DecryptRequest.cs
- SerializationTrace.cs
- ToolTip.cs
- ResourceAttributes.cs
- XPathNavigator.cs
- FlowDocumentFormatter.cs
- ShapingEngine.cs
- BreakSafeBase.cs
- RuntimeEnvironment.cs
- SHA1Managed.cs
- SerializationInfo.cs
- ObjectConverter.cs
- RowTypeElement.cs
- BasicKeyConstraint.cs
- MemoryPressure.cs
- StateManagedCollection.cs
- StateElement.cs
- EpmCustomContentWriterNodeData.cs
- OlePropertyStructs.cs