Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / Tools / xws_reg / System / ServiceModel / Install / InfoCardServiceInstallComponent.cs / 1 / InfoCardServiceInstallComponent.cs
//------------------------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------------------------- namespace System.ServiceModel.Install { using Microsoft.Win32; using System.ServiceProcess; class InfoCardServiceInstallComponent : ServiceInstallComponent { public InfoCardServiceInstallComponent() : base(ServiceModelInstallStrings.InfoCardServiceName, ServiceModelInstallStrings.LegacyInfoCardServiceName, SR.GetString(SR.InfoCardServiceDisplayName), ServiceStartMode.Manual, ServiceModelInstallStrings.InfoCardServiceExeName, null, null, null, SR.GetString(SR.InfoCardServiceDescription), ServiceModelInstallStrings.InfoCardServiceSecurityDescriptor) { // empty } protected override void OnInstall(OutputLevel outputLevel) { base.OnInstall(outputLevel); this.SetExtendedProperties(); } protected override void OnReinstall(OutputLevel outputLevel) { base.OnReinstall(outputLevel); this.SetExtendedProperties(); } void SetExtendedProperties() { // Configure the infocard service on LH+ by stripping privileges and applying network rules if (OSEnvironmentHelper.IsVistaOrGreater) { // // We set the service name in the constructor, hence use this.ServiceName // ExecuteSC( "privs " + this.ServiceName + " SeTcbPrivilege/SeAssignPrimaryTokenPrivilege/SeTakeOwnershipPrivilege/SeBackupPrivilege/SeRestorePrivilege/SeImpersonatePrivilege" ); // Setup network rules to allow all outgoing over tcp only and disable all incoming. using (RegistryKey key = Registry.LocalMachine.OpenSubKey(ServiceModelInstallStrings.InfoCardNetworkRestrictionKey, true)) { key.SetValue(ServiceModelInstallStrings.InfoCardBlockInRegKeyName, ServiceModelInstallStrings.InfoCardBlockInRegKeyValue); key.SetValue(ServiceModelInstallStrings.InfoCardAllowTcpOutRegKeyName, ServiceModelInstallStrings.InfoCardAllowTcpOutRegKeyValue); key.SetValue(ServiceModelInstallStrings.InfoCardBlockOtherOutRegKeyName, ServiceModelInstallStrings.InfoCardBlockOtherOutRegKeyValue); } } } protected override void OnUninstall(OutputLevel outputLevel) { base.OnUninstall(outputLevel); // Remove the infocard network restrictions if appropriate. if (OSEnvironmentHelper.IsVistaOrGreater) { InfoCardServiceInstallComponent .TryDeleteRegistryKeyValue(ServiceModelInstallStrings.InfoCardNetworkRestrictionKey, ServiceModelInstallStrings.InfoCardAllowTcpOutRegKeyName); InfoCardServiceInstallComponent .TryDeleteRegistryKeyValue(ServiceModelInstallStrings.InfoCardNetworkRestrictionKey, ServiceModelInstallStrings.InfoCardBlockInRegKeyName); InfoCardServiceInstallComponent .TryDeleteRegistryKeyValue(ServiceModelInstallStrings.InfoCardNetworkRestrictionKey, ServiceModelInstallStrings.InfoCardBlockOtherOutRegKeyName); } } static void TryDeleteRegistryKeyValue(string subKey, string valueName) { RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(subKey, true); if (null != registryKey) { using (registryKey) { try { registryKey.DeleteValue(valueName); } catch (ArgumentException) { // ignore the exception if the value cannot be found } } } } } } // 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
- RuleSettingsCollection.cs
- AspProxy.cs
- WebBrowserPermission.cs
- InfoCardAsymmetricCrypto.cs
- BufferedGraphicsManager.cs
- Help.cs
- XmlDataImplementation.cs
- HtmlLiteralTextAdapter.cs
- DataGridViewCellPaintingEventArgs.cs
- DesignerActionItem.cs
- KeyboardDevice.cs
- InvalidComObjectException.cs
- PersonalizationState.cs
- MetaModel.cs
- Span.cs
- EventLogTraceListener.cs
- TextBox.cs
- Conditional.cs
- Stroke2.cs
- WsdlInspector.cs
- SafeLibraryHandle.cs
- EnumerableCollectionView.cs
- WorkflowRuntimeServicesBehavior.cs
- PersistChildrenAttribute.cs
- TitleStyle.cs
- QilIterator.cs
- FileSystemWatcher.cs
- ModuleConfigurationInfo.cs
- ContentFileHelper.cs
- XPathNodeList.cs
- UdpContractFilterBehavior.cs
- CustomValidator.cs
- Propagator.JoinPropagator.cs
- RestHandlerFactory.cs
- Group.cs
- InstancePersistenceEvent.cs
- PerformanceCounterManager.cs
- TextContainer.cs
- SQLBinary.cs
- RegionInfo.cs
- Transform3DCollection.cs
- TabPage.cs
- InvalidateEvent.cs
- TreeViewHitTestInfo.cs
- _MultipleConnectAsync.cs
- XmlExceptionHelper.cs
- SynchronousReceiveBehavior.cs
- DataMemberAttribute.cs
- ToolStripDropDownMenu.cs
- XmlSchemaSimpleContentExtension.cs
- BindingMemberInfo.cs
- OdbcError.cs
- PowerModeChangedEventArgs.cs
- PriorityQueue.cs
- MachineKeyConverter.cs
- Model3DGroup.cs
- ProfileServiceManager.cs
- TextComposition.cs
- Misc.cs
- Property.cs
- XmlCharacterData.cs
- CoTaskMemHandle.cs
- ResourceProperty.cs
- WebServiceAttribute.cs
- ellipse.cs
- ParameterCollection.cs
- HtmlWindowCollection.cs
- CommunicationObjectAbortedException.cs
- LicFileLicenseProvider.cs
- MethodImplAttribute.cs
- UIElement3D.cs
- DmlSqlGenerator.cs
- DLinqAssociationProvider.cs
- WebPartEditorApplyVerb.cs
- Number.cs
- UnmanagedMemoryAccessor.cs
- EventWaitHandle.cs
- ZipFileInfoCollection.cs
- ObjectTypeMapping.cs
- SharedUtils.cs
- RegexCode.cs
- FixedTextPointer.cs
- FontFamily.cs
- BuilderInfo.cs
- ProjectionPruner.cs
- XmlDomTextWriter.cs
- DataSourceCacheDurationConverter.cs
- HtmlElementErrorEventArgs.cs
- CharConverter.cs
- HttpWebRequestElement.cs
- WebConfigurationHost.cs
- CFStream.cs
- LoadItemsEventArgs.cs
- ProviderUtil.cs
- OracleConnection.cs
- AxDesigner.cs
- TypeConverterHelper.cs
- SoapTypeAttribute.cs
- UnsafeNativeMethods.cs
- Parameter.cs