public static SharePointAuthorizationDiscoveryMetadata Create( string wwwAuthenticateParams) { var paramsDict = HttpWwwAuthenticateHeaderParameterParser .Parse(wwwAuthenticateParams); var targetInstance = new SharePointAuthorizationDiscoveryMetadata( paramsDict) { Domain = PopValue(paramsDict, DomainKey), Realm = PopValue(paramsDict, RealmKey), ResourcePrincipal = PopValue(paramsDict, ResourcePrincipalKey), AuthorizationUri = PopValue(paramsDict, AuthorizationUriKey) }; if (PopValue(paramsDict, TrustedIssuersKey) is string trustedIssuers) { targetInstance.TrustedIssuers.AddRange(trustedIssuers.Split( commaSeparator, StringSplitOptions.RemoveEmptyEntries)); } return(targetInstance);
public static Dictionary <string, string> Parse(string param) { var state = new HttpWwwAuthenticateHeaderParameterParser(param); var result = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase); var token = state.ReadToken(); while (!string.IsNullOrEmpty(token)) { if (!state.ReadDelim('=')) { return(result); } result[token] = state.ReadString(); if (!state.ReadDelim(',')) { return(result); } token = state.ReadToken(); } return(result); }