private static string GetTokenType(System.IdentityModel.Tokens.GenericXmlSecurityToken token) { using (System.Xml.XmlReader xmlReader = new System.Xml.XmlNodeReader(token.TokenXml)) { xmlReader.MoveToContent(); if (xmlReader.IsStartElement("BinarySecurityToken", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd")) { return(xmlReader.GetAttribute("ValueType", null)); } } return(string.Empty); }
private static OAuth2AccessTokenRequest CreateAccessTokenRequestWithAssertion(System.IdentityModel.Tokens.GenericXmlSecurityToken token, string resource) { Utility.VerifyNonNullArgument("token", token); OAuth2AccessTokenRequest oAuth2AccessTokenRequest = new OAuth2AccessTokenRequest(); JsonWebSecurityTokenHandler jsonWebSecurityTokenHandler = new JsonWebSecurityTokenHandler(); System.Xml.XmlReader reader = new System.Xml.XmlNodeReader(token.TokenXml); string text; string jsonTokenString = jsonWebSecurityTokenHandler.GetJsonTokenString(reader, out text); oAuth2AccessTokenRequest.GrantType = OAuth2MessageFactory.GetTokenType(token); oAuth2AccessTokenRequest.Assertion = jsonTokenString; oAuth2AccessTokenRequest.Resource = resource; return(oAuth2AccessTokenRequest); }