public virtual XmlElement CreateWsspIssuedTokenAssertion(MetadataExporter exporter, IssuedSecurityTokenParameters parameters) { XmlElement result = CreateWsspAssertion(IssuedTokenName); SetIncludeTokenValue(result, parameters.InclusionMode); XmlElement issuerAssertion = CreateWsspIssuerElement(parameters.IssuerAddress, parameters.IssuerMetadataAddress); if (issuerAssertion != null) { result.AppendChild(issuerAssertion); } XmlElement tokenTemplate = CreateWsspAssertion(RequestSecurityTokenTemplateName); TrustDriver driver = this.TrustDriver; foreach (XmlElement p in parameters.CreateRequestParameters(driver)) { tokenTemplate.AppendChild(doc.ImportNode(p, true)); } result.AppendChild(tokenTemplate); result.AppendChild( CreateWspPolicyWrapper( exporter, CreateWsspRequireDerivedKeysAssertion(parameters.RequireDerivedKeys), CreateReferenceStyleAssertion(parameters.ReferenceStyle) )); return result; }
public void CreateRequestParameters () { IssuedSecurityTokenParameters p = new IssuedSecurityTokenParameters (); p.ClaimTypeRequirements.Add (new ClaimTypeRequirement (ClaimTypes.Name, true)); p.AdditionalRequestParameters.Add (new XmlDocument () .CreateElement ("AdditionalFoo")); Collection<XmlElement> c = p.CreateRequestParameters ( MessageSecurityVersion.Default, WSSecurityTokenSerializer.DefaultInstance); StringWriter sw = new StringWriter (); XmlWriterSettings settings = new XmlWriterSettings (); settings.OmitXmlDeclaration = true; foreach (XmlElement el in c) { XmlWriter w = XmlWriter.Create (sw, settings); el.WriteTo (w); w.Close (); } string expected = @"<t:KeyType xmlns:t='http://schemas.xmlsoap.org/ws/2005/02/trust'>http://schemas.xmlsoap.org/ws/2005/02/trust/SymmetricKey</t:KeyType><t:Claims xmlns:t='http://schemas.xmlsoap.org/ws/2005/02/trust'><wsid:ClaimType Uri='http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name' Optional='true' xmlns:wsid='http://schemas.xmlsoap.org/ws/2005/05/identity' /></t:Claims><AdditionalFoo />"; Assert.AreEqual (expected.Replace ('\'', '"'), sw.ToString ()); }
public virtual XmlElement CreateWsspIssuedTokenAssertion(MetadataExporter exporter, IssuedSecurityTokenParameters parameters) { XmlElement tokenAssertion = this.CreateWsspAssertion("IssuedToken"); this.SetIncludeTokenValue(tokenAssertion, parameters.InclusionMode); XmlElement newChild = this.CreateWsspIssuerElement(parameters.IssuerAddress, parameters.IssuerMetadataAddress); if (newChild != null) { tokenAssertion.AppendChild(newChild); } XmlElement element3 = this.CreateWsspAssertion("RequestSecurityTokenTemplate"); System.ServiceModel.Security.TrustDriver trustDriver = this.TrustDriver; foreach (XmlElement element4 in parameters.CreateRequestParameters(trustDriver)) { element3.AppendChild(doc.ImportNode(element4, true)); } tokenAssertion.AppendChild(element3); tokenAssertion.AppendChild(this.CreateWspPolicyWrapper(exporter, new XmlElement[] { this.CreateWsspRequireDerivedKeysAssertion(parameters.RequireDerivedKeys), this.CreateReferenceStyleAssertion(parameters.ReferenceStyle) })); return tokenAssertion; }