예제 #1
0
        private static void HandleSecurity(this SecurityConfig securityConfig, XmlNode node)
        {
            foreach (XmlNode child in node.ChildNodes)
            {
                var nodeName = CleanNodeName(child);
                if ("username-password".Equals(nodeName))
                {
                    securityConfig.ConfigureUsernamePasswordIdentity(GetAttribute(child, "username"),
                                                                     GetAttribute(child, "password"));
                }
                else if ("token".Equals(nodeName))
                {
                    var encodingLabel = GetAttribute(node, "encoding");
                    var encodedToken  = GetTextContent(node);

                    TokenEncoding tokenEncoding = Enum.TryParse(encodingLabel, true, out tokenEncoding)
                        ? tokenEncoding
                        : TokenEncoding.None;
                    securityConfig.ConfigureTokenIdentity(encodedToken, tokenEncoding);
                }
                else if ("credentials-factory".Equals(nodeName))
                {
                    securityConfig.HandleCredentialsFactory(child);
                }
            }
        }
        public TokenIdentityConfig(string encodedToken, TokenEncoding encoding)
        {
            Encoding = encoding;
            switch (encoding)
            {
            case TokenEncoding.None:
                Token = System.Text.Encoding.ASCII.GetBytes(encodedToken);
                break;

            case TokenEncoding.Base64:
                Token = System.Convert.FromBase64String(encodedToken);
                break;

            default:
                throw new NotSupportedException($"Unsupported Encoding:{encoding}");
            }
        }
 public TokenIdentityConfig(byte[] Token, TokenEncoding Encoding = TokenEncoding.None)
 {
 }