Code:
/ WCF / WCF / 3.5.30729.1 / untmp / Orcas / SP / ndp / cdf / src / WCF / infocard / Service / managed / Microsoft / InfoCards / RequestSecurityTokenForGetBrowserToken.cs / 1 / RequestSecurityTokenForGetBrowserToken.cs
namespace Microsoft.InfoCards { using System; using System.Xml; using System.Collections; using IDT = Microsoft.InfoCards.Diagnostics.InfoCardTrace; // // This class is used to write an RST to the STS for the get browser token case. // internal class RequestSecurityTokenForGetBrowserToken : RequestSecurityToken { public RequestSecurityTokenForGetBrowserToken( RequestSecurityTokenParameters rstParams ) : base( rstParams ) { } protected override void WriteKeyTypeElement() { // // Write the KeyType element. In the browser case, this value must be No Proof Key. // IDT.Assert( ProtocolVersionProfile.WSTrust.KeyTypeBearer.ToString() == Policy.GetKeyTypeString(), "Only no proof key allowed in browser case" ); IDT.TraceDebug( "IPSTSCLIENT: Writing key type {0} to RST", Policy.GetKeyTypeString() ); Serializer.WriteKeyTypeElement( Policy.GetKeyTypeString() ); } protected override void WriteRequestTypeElement() { // // For browser case, we only support the Issue action. // IDT.TraceDebug( "IPSTSCLIENT: Writing RequestType {0} to RST", ProtocolVersionProfile.WSTrust.IssueRequestType ); Serializer.WriteRequestTypeElement( ProtocolVersionProfile.WSTrust.IssueRequestType ); } protected override void WriteAppliesToElement() { // // Always send AppliesTo in browser case - same behavior as Indigo federated token provider // GetBrowserTokenRequest.WriteSourceUrlAppliesTo( Writer, m_rstParams.BrowserTokenParams, ProtocolVersionProfile ); } protected override void WriteSecondaryParametersElement() { // // No need to check appliesTo in the browser case, since it will always be sent. // // // Write out a copy of the policy XML to the SecondaryParameters element if we are using the // oasis 2007 version of WS-Trust. // if( XmlNames.WSSpecificationVersion.WSTrustOasis2007 == ProtocolVersionProfile.WSTrust.Version ) { // // If the policy contains optional claims but the user has elected to not sent optional claims, then we // cannot sent secondaryParameters (as we do not want accidental disclosure of information to a // non-auditing STS). // bool writeSecondaryParameters = true; if( Policy.OptionalClaims.Length > 0 ) { // // If the policy contains one or more optional claims, check to see if the user // is willing to send optional claims. // writeSecondaryParameters = m_rstParams.DiscloseOptionalClaims; } if( writeSecondaryParameters ) { if( null != Policy.RelyingPartyPolicy ) { Serializer.WriteSecondaryParametersElement( Policy.RelyingPartyPolicy.PolicyXml ); } else { // // If the incoming RST Template did not contain SecondaryParameters, we simply write the // original request. // Serializer.WriteSecondaryParametersElement( Policy.ClientPolicy.PolicyXml ); } } } } protected override void CustomWriteBodyContents( XmlDictionaryWriter writer ) { InitializeWriters( writer ); WriteRSTOpeningElement(); WriteKeyTypeElement(); WriteRequestTypeElement(); WriteAppliesToElement(); WriteClaimsElement(); WriteTokenTypeElement(); WriteSecondaryParametersElement(); WriteEndElement(); // // The following elements are explicitly excluded from the browser case: // // InfoCardReferenceElement // KeySupportingElements // PPIDElement // EncryptionAlgorithmElement // DisplayTokenElement // PassOnElements // UnprocessedPolicyElements // } } } // 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
- InkCanvasFeedbackAdorner.cs
- ArrayList.cs
- ControlCollection.cs
- Control.cs
- AssociationEndMember.cs
- Code.cs
- TaiwanLunisolarCalendar.cs
- OrderedDictionaryStateHelper.cs
- DataGridCell.cs
- PointCollectionConverter.cs
- ForEachAction.cs
- DialogBaseForm.cs
- AQNBuilder.cs
- PermissionSetEnumerator.cs
- DuplexChannel.cs
- VisualTarget.cs
- InputElement.cs
- HttpDebugHandler.cs
- FileChangesMonitor.cs
- SqlServer2KCompatibilityAnnotation.cs
- SectionXmlInfo.cs
- ViewCellSlot.cs
- EntityParameterCollection.cs
- WebConfigurationHost.cs
- SvcFileManager.cs
- PropertyChangingEventArgs.cs
- PtsContext.cs
- webeventbuffer.cs
- DbDataSourceEnumerator.cs
- ConnectionsZoneDesigner.cs
- SerializerWriterEventHandlers.cs
- DatePicker.cs
- ContextMenu.cs
- FillRuleValidation.cs
- NumericExpr.cs
- HttpHandlerActionCollection.cs
- GraphicsContainer.cs
- ImageIndexEditor.cs
- DataGridViewCellConverter.cs
- DataExpression.cs
- BlobPersonalizationState.cs
- UserMapPath.cs
- MembershipUser.cs
- _HeaderInfo.cs
- rsa.cs
- DesignerVerb.cs
- OleServicesContext.cs
- RemoveFromCollection.cs
- BypassElement.cs
- SafeCryptContextHandle.cs
- ClientConfigurationSystem.cs
- CheckBoxList.cs
- TableLayoutPanel.cs
- WebPartZoneBase.cs
- TimelineCollection.cs
- COMException.cs
- SystemSounds.cs
- EntityCommandExecutionException.cs
- TypeUtil.cs
- XmlTextReaderImpl.cs
- StreamProxy.cs
- FixedSOMLineCollection.cs
- OrderByBuilder.cs
- ComponentResourceManager.cs
- RequestCachePolicy.cs
- CodeAttributeArgument.cs
- xsdvalidator.cs
- XpsS0ValidatingLoader.cs
- Exceptions.cs
- wpf-etw.cs
- SingleTagSectionHandler.cs
- TreeNodeSelectionProcessor.cs
- SafeRightsManagementQueryHandle.cs
- AnnouncementEndpointElement.cs
- BaseHashHelper.cs
- BulletChrome.cs
- DrawingBrush.cs
- DateTimePickerDesigner.cs
- PageResolution.cs
- MDIClient.cs
- ZipIOLocalFileBlock.cs
- Button.cs
- SerializationStore.cs
- AssociatedControlConverter.cs
- SymbolResolver.cs
- BitmapMetadataBlob.cs
- IBuiltInEvidence.cs
- NonValidatingSecurityTokenAuthenticator.cs
- BookmarkInfo.cs
- HttpListenerException.cs
- JavaScriptString.cs
- ProfileService.cs
- SparseMemoryStream.cs
- MarkupObject.cs
- TypeRefElement.cs
- GraphicsPathIterator.cs
- Activity.cs
- WebPartDeleteVerb.cs
- GenericXmlSecurityToken.cs
- ImageDrawing.cs