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
- SoapAttributeAttribute.cs
- HtmlInputReset.cs
- ObjectViewListener.cs
- CompoundFileDeflateTransform.cs
- ListSortDescriptionCollection.cs
- MultilineStringConverter.cs
- SqlCacheDependencyDatabase.cs
- UserControlDocumentDesigner.cs
- RawStylusActions.cs
- TextSearch.cs
- ObjectRef.cs
- ListBase.cs
- EventLogHandle.cs
- PropertySegmentSerializationProvider.cs
- WizardSideBarListControlItemEventArgs.cs
- LockCookie.cs
- ParallelSeparator.xaml.cs
- InfoCardRSAPKCS1SignatureDeformatter.cs
- NavigatingCancelEventArgs.cs
- StringSource.cs
- EntityDataSourceMemberPath.cs
- WebUtility.cs
- HMACRIPEMD160.cs
- EpmCustomContentSerializer.cs
- XmlAttributeCollection.cs
- ByteStreamMessage.cs
- TreeNodeStyle.cs
- JapaneseCalendar.cs
- PlainXmlDeserializer.cs
- TCEAdapterGenerator.cs
- MenuAutomationPeer.cs
- DecimalAnimationBase.cs
- ImportedNamespaceContextItem.cs
- EntityDesignerDataSourceView.cs
- RoleGroup.cs
- InternalControlCollection.cs
- WindowCollection.cs
- AutoScrollExpandMessageFilter.cs
- OutputCacheModule.cs
- OleDbEnumerator.cs
- FileCodeGroup.cs
- SystemWebCachingSectionGroup.cs
- ExternalFile.cs
- ExtentJoinTreeNode.cs
- FontFamilyValueSerializer.cs
- TextRange.cs
- GlyphingCache.cs
- InfoCardServiceInstallComponent.cs
- LicFileLicenseProvider.cs
- EventData.cs
- _LocalDataStore.cs
- XmlSchemaObjectTable.cs
- AddInIpcChannel.cs
- TextServicesCompartmentEventSink.cs
- EllipticalNodeOperations.cs
- BuildProviderCollection.cs
- recordstate.cs
- Geometry.cs
- DirtyTextRange.cs
- ListItem.cs
- COM2TypeInfoProcessor.cs
- CollectionConverter.cs
- XmlQueryType.cs
- ServerValidateEventArgs.cs
- Parameter.cs
- XsdDuration.cs
- ScriptBehaviorDescriptor.cs
- TemplatedWizardStep.cs
- Quaternion.cs
- ExpressionHelper.cs
- LinqDataSourceValidationException.cs
- TheQuery.cs
- Int32.cs
- DomainUpDown.cs
- XmlBindingWorker.cs
- TextPenaltyModule.cs
- sqlnorm.cs
- SortAction.cs
- ButtonFieldBase.cs
- NetworkInformationPermission.cs
- XmlSchemaAnnotated.cs
- IriParsingElement.cs
- PartitionerStatic.cs
- ToolTipService.cs
- UnsafeCollabNativeMethods.cs
- FaultHandlingFilter.cs
- SqlNode.cs
- HotSpot.cs
- InputReferenceExpression.cs
- Panel.cs
- FilterableAttribute.cs
- Random.cs
- FormViewUpdateEventArgs.cs
- DataGridViewTopRowAccessibleObject.cs
- TemplatePropertyEntry.cs
- CrossContextChannel.cs
- ListViewGroupConverter.cs
- XamlBrushSerializer.cs
- DomainConstraint.cs
- TransformCryptoHandle.cs