Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Input / InputProviderSite.cs / 1 / InputProviderSite.cs
using System; using System.Security; using System.Security.Permissions; using MS.Internal; using MS.Internal.PresentationCore; // SecurityHelper using MS.Win32; using System.Windows.Threading; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; namespace System.Windows.Input { ////// The object which input providers use to report input to the input /// manager. /// internal class InputProviderSite : IDisposable { ////// Critical: This code creates critical data in the form of InputManager and InputProvider /// [SecurityCritical] internal InputProviderSite(InputManager inputManager, IInputProvider inputProvider) { _inputManager = new SecurityCriticalDataClass(inputManager); _inputProvider = new SecurityCriticalDataClass (inputProvider); } /// /// Returns the input manager that this site is attached to. /// ////// Critical: We do not want to expose the Input manager in the SEE /// TreatAsSafe: This code has a demand in it /// public InputManager InputManager { [SecurityCritical,SecurityTreatAsSafe] get { SecurityHelper.DemandUnrestrictedUIPermission(); return CriticalInputManager; } } ////// Returns the input manager that this site is attached to. /// ////// Critical: We do not want to expose the Input manager in the SEE /// internal InputManager CriticalInputManager { [SecurityCritical] get { return _inputManager.Value; } } ////// Unregisters this input provider. /// ////// Critical: This code accesses critical data (InputManager and InputProvider). /// TreatAsSafe: The critical data is not exposed outside this call /// [SecurityCritical,SecurityTreatAsSafe] public void Dispose() { if (!_isDisposed) { _isDisposed = true; if (_inputManager != null && _inputProvider != null) { _inputManager.Value.UnregisterInputProvider(_inputProvider.Value); } _inputManager = null; _inputProvider = null; } } ////// Returns true if the CompositionTarget is disposed. /// public bool IsDisposed { get { return _isDisposed; } } ////// Reports input to the input manager. /// ////// Whether or not any event generated as a consequence of this /// event was handled. /// ////// Critical:This code is critical and can be used in event spoofing. It also accesses /// InputManager and calls into ProcessInput which is critical. /// // [SecurityCritical ] [UIPermissionAttribute(SecurityAction.LinkDemand,Unrestricted = true)] public bool ReportInput(InputReport inputReport) { if(IsDisposed) { throw new ObjectDisposedException(SR.Get(SRID.InputProviderSiteDisposed)); } bool handled = false; InputReportEventArgs input = new InputReportEventArgs(null, inputReport); input.RoutedEvent=InputManager.PreviewInputReportEvent; if(_inputManager != null) { handled = _inputManager.Value.ProcessInput(input); } return handled; } private bool _isDisposed; ////// Critical: This object should not be exposed in the SEE as it can be /// used for input spoofing /// private SecurityCriticalDataClass_inputManager; /// /// Critical: This object should not be exposed in the SEE as it can be /// used for input spoofing /// private SecurityCriticalDataClass_inputProvider; } } // 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
- EntityTypeEmitter.cs
- EventPropertyMap.cs
- SafeLibraryHandle.cs
- indexingfiltermarshaler.cs
- ObjectAnimationUsingKeyFrames.cs
- PageBreakRecord.cs
- CustomCategoryAttribute.cs
- TraceContextRecord.cs
- UnionQueryOperator.cs
- ValidationEventArgs.cs
- XmlCompatibilityReader.cs
- Baml2006ReaderSettings.cs
- ProcessHost.cs
- SqlMetaData.cs
- TimeSpanValidator.cs
- ProvidersHelper.cs
- WindowVisualStateTracker.cs
- ComponentChangingEvent.cs
- KnownIds.cs
- RequestDescription.cs
- NameValuePair.cs
- ObjectViewEntityCollectionData.cs
- xmlfixedPageInfo.cs
- ColorAnimationBase.cs
- SharedPerformanceCounter.cs
- KerberosSecurityTokenAuthenticator.cs
- CharConverter.cs
- Setter.cs
- wmiprovider.cs
- BookmarkUndoUnit.cs
- COM2ComponentEditor.cs
- DateTimeUtil.cs
- DataTablePropertyDescriptor.cs
- SettingsAttributeDictionary.cs
- ConstantProjectedSlot.cs
- DataGridViewComboBoxEditingControl.cs
- ServiceReference.cs
- OperationAbortedException.cs
- CustomAttributeBuilder.cs
- iisPickupDirectory.cs
- UnsafeNativeMethodsTablet.cs
- SwitchAttribute.cs
- FileUtil.cs
- HTTPNotFoundHandler.cs
- ExpressionPrefixAttribute.cs
- TokenBasedSet.cs
- SessionChannels.cs
- PointCollectionValueSerializer.cs
- ChainOfDependencies.cs
- ErrorFormatterPage.cs
- EntityCollectionChangedParams.cs
- InlineObject.cs
- ClientCultureInfo.cs
- CSharpCodeProvider.cs
- ProcessHostFactoryHelper.cs
- FunctionUpdateCommand.cs
- NumericExpr.cs
- FormViewUpdateEventArgs.cs
- XamlPathDataSerializer.cs
- SplayTreeNode.cs
- UnsafeNetInfoNativeMethods.cs
- WsatServiceCertificate.cs
- DataSourceConverter.cs
- SafeLocalAllocation.cs
- DeclaredTypeElement.cs
- Inflater.cs
- Trace.cs
- RotateTransform3D.cs
- DbQueryCommandTree.cs
- DateTimeValueSerializer.cs
- HtmlShimManager.cs
- _ServiceNameStore.cs
- InputChannelAcceptor.cs
- SettingsPropertyValueCollection.cs
- FtpRequestCacheValidator.cs
- XmlSchemaGroup.cs
- GlyphTypeface.cs
- PointKeyFrameCollection.cs
- ListViewInsertEventArgs.cs
- AuthStoreRoleProvider.cs
- WebPartMinimizeVerb.cs
- _ListenerResponseStream.cs
- CheckBoxField.cs
- NamedPipeChannelListener.cs
- KoreanLunisolarCalendar.cs
- BamlMapTable.cs
- linebase.cs
- XamlSerializerUtil.cs
- EasingQuaternionKeyFrame.cs
- UTF8Encoding.cs
- ListViewPagedDataSource.cs
- DataTableReaderListener.cs
- ScriptHandlerFactory.cs
- TemplateBindingExpressionConverter.cs
- CorePropertiesFilter.cs
- Binding.cs
- Int32Rect.cs
- ArithmeticException.cs
- ObjectDataSourceMethodEventArgs.cs
- _NegoState.cs