Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx35 / System.ServiceModel.Web / System / ServiceModel / Dispatcher / JavascriptCallbackMessageInspector.cs / 1305376 / JavascriptCallbackMessageInspector.cs
//------------------------------------------------------------ // Copyright (c) Microsoft Corporation. All rights reserved. //----------------------------------------------------------- #pragma warning disable 1634, 1691 namespace System.ServiceModel.Dispatcher { using System.Net; using System.Linq; using System.ServiceModel; using System.ServiceModel.Channels; using System.ServiceModel.Web; using System.Web; using System.ServiceModel.Description; using System.Diagnostics; using System.ServiceModel.Diagnostics; class JavascriptCallbackMessageInspector : IDispatchMessageInspector { internal static readonly string applicationJavaScriptMediaType = "application/x-javascript"; public JavascriptCallbackMessageInspector(string callbackParameterName) { this.CallbackParameterName = callbackParameterName; if (DiagnosticUtility.ShouldTraceInformation) { TraceUtility.TraceEvent(TraceEventType.Information, TraceCode.JsonpCallbackNameSet, SR2.GetString(SR2.TraceCodeJsonpCallbackNameSet, callbackParameterName)); } } string CallbackParameterName { get; set; } public object AfterReceiveRequest(ref Message request, IClientChannel channel, InstanceContext instanceContext) { if (HttpContext.Current != null && HttpContext.Current.User != null && HttpContext.Current.User.Identity != null && HttpContext.Current.User.Identity.IsAuthenticated) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new NotSupportedException(SR2.CrossDomainJavascriptAuthNotSupported)); } return null; } public void BeforeSendReply(ref Message reply, object correlationState) { WebBodyFormatMessageProperty formatProperty; JavascriptCallbackResponseMessageProperty javascriptCallbackResponseMessageProperty = null; if (reply.Properties.TryGetValue(WebBodyFormatMessageProperty.Name, out formatProperty) && formatProperty != null && formatProperty.Format == WebContentFormat.Json) { if (!reply.Properties.TryGetValue (JavascriptCallbackResponseMessageProperty.Name, out javascriptCallbackResponseMessageProperty) || javascriptCallbackResponseMessageProperty == null) { javascriptCallbackResponseMessageProperty = WebHttpBehavior.TrySetupJavascriptCallback(this.CallbackParameterName); if (javascriptCallbackResponseMessageProperty != null) { reply.Properties.Add(JavascriptCallbackResponseMessageProperty.Name, javascriptCallbackResponseMessageProperty); } } if (javascriptCallbackResponseMessageProperty != null) { HttpResponseMessageProperty property; if (reply.Properties.TryGetValue (HttpResponseMessageProperty.Name, out property) && property != null) { property.Headers[HttpResponseHeader.ContentType] = applicationJavaScriptMediaType; if (javascriptCallbackResponseMessageProperty.StatusCode == null) { javascriptCallbackResponseMessageProperty.StatusCode = property.StatusCode; } property.StatusCode = HttpStatusCode.OK; if (property.SuppressEntityBody) { property.SuppressEntityBody = false; Message nullJsonMessage = WebOperationContext.Current.CreateJsonResponse
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- StylusCaptureWithinProperty.cs
- FamilyTypefaceCollection.cs
- ExceptionHandlerDesigner.cs
- TraceSource.cs
- AuthenticationModuleElement.cs
- CacheRequest.cs
- MessageBox.cs
- TextCharacters.cs
- CardSpaceException.cs
- ContractSearchPattern.cs
- ItemsControl.cs
- SelectionChangedEventArgs.cs
- IItemContainerGenerator.cs
- ReadOnlyDataSource.cs
- VideoDrawing.cs
- FlowDocumentPage.cs
- InheritedPropertyChangedEventArgs.cs
- AtlasWeb.Designer.cs
- HttpDictionary.cs
- MetabaseServerConfig.cs
- KeyFrames.cs
- CalendarDataBindingHandler.cs
- HttpCacheVaryByContentEncodings.cs
- DataContractAttribute.cs
- IISUnsafeMethods.cs
- ChangeNode.cs
- SevenBitStream.cs
- ExpressionEditorAttribute.cs
- KeyProperty.cs
- FileLoadException.cs
- DiscoveryClientChannelFactory.cs
- SmiRecordBuffer.cs
- AutoCompleteStringCollection.cs
- AxisAngleRotation3D.cs
- SeverityFilter.cs
- ScrollViewerAutomationPeer.cs
- _Connection.cs
- IriParsingElement.cs
- Subset.cs
- UrlAuthorizationModule.cs
- Bidi.cs
- BuilderPropertyEntry.cs
- coordinatorfactory.cs
- WindowsGraphicsCacheManager.cs
- UnsafeNativeMethods.cs
- CollectionViewSource.cs
- TypeDelegator.cs
- SaveFileDialog.cs
- ErrorFormatterPage.cs
- WorkflowViewService.cs
- BaseProcessor.cs
- SamlAuthorizationDecisionClaimResource.cs
- UnhandledExceptionEventArgs.cs
- NotifyParentPropertyAttribute.cs
- Expander.cs
- EncryptedReference.cs
- HostingEnvironmentException.cs
- WebPartConnectVerb.cs
- DbConnectionPoolGroupProviderInfo.cs
- DataBindingValueUIHandler.cs
- DbLambda.cs
- XmlNamespaceManager.cs
- Thumb.cs
- XPathAncestorQuery.cs
- ResolvedKeyFrameEntry.cs
- DrawTreeNodeEventArgs.cs
- DataGridHeaderBorder.cs
- XmlFormatReaderGenerator.cs
- EditorZone.cs
- BitHelper.cs
- Debug.cs
- ScrollPatternIdentifiers.cs
- URLMembershipCondition.cs
- FrameworkElement.cs
- CompatibleIComparer.cs
- TextBounds.cs
- SqlVersion.cs
- BitmapPalettes.cs
- WebRequestModuleElementCollection.cs
- SymmetricKeyWrap.cs
- ExpressionNormalizer.cs
- LinqDataView.cs
- TableProvider.cs
- SafeNativeMethods.cs
- DbProviderConfigurationHandler.cs
- Html32TextWriter.cs
- WpfPayload.cs
- StrokeSerializer.cs
- Registry.cs
- ResolvePPIDRequest.cs
- filewebresponse.cs
- QueryableFilterUserControl.cs
- Array.cs
- PersonalizationProviderHelper.cs
- ToolStripPanelRenderEventArgs.cs
- GridView.cs
- DataTablePropertyDescriptor.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- ExternalFile.cs
- CompositeDataBoundControl.cs