示例#1
0
        bool IExtensionRequest.Deserialize(IDictionary <string, string> fields, DotNetOpenId.Provider.IRequest request, string typeUri)
        {
            if (fields == null)
            {
                return(false);
            }
            if (!fields.ContainsKey(Constants.RequestParameters.PreferredAuthPolicies))
            {
                return(false);
            }

            string maxAuthAge;

            MaximumAuthenticationAge = fields.TryGetValue(Constants.RequestParameters.MaxAuthAge, out maxAuthAge) ?
                                       TimeSpan.FromSeconds(double.Parse(maxAuthAge, CultureInfo.InvariantCulture)) : (TimeSpan?)null;

            PreferredPolicies.Clear();
            string[] preferredPolicies = fields[Constants.RequestParameters.PreferredAuthPolicies].Split(' ');
            foreach (string policy in preferredPolicies)
            {
                if (policy.Length > 0)
                {
                    PreferredPolicies.Add(policy);
                }
            }

            PreferredAuthLevelTypes.Clear();
            AliasManager authLevelAliases = FindIncomingAliases(fields);
            string       preferredAuthLevelAliases;

            if (fields.TryGetValue(Constants.RequestParameters.PreferredAuthLevelTypes, out preferredAuthLevelAliases))
            {
                foreach (string authLevelAlias in preferredAuthLevelAliases.Split(' '))
                {
                    if (authLevelAlias.Length == 0)
                    {
                        continue;
                    }
                    PreferredAuthLevelTypes.Add(authLevelAliases.ResolveAlias(authLevelAlias));
                }
            }

            return(true);
        }
示例#2
0
 /// <summary>
 /// Gets a hash code for this object.
 /// </summary>
 public override int GetHashCode()
 {
     return(PreferredPolicies.GetHashCode());
 }