1
//-----------------------------------------------------------------------
2 // <copyright file="PapeUtilities.cs" company="Andrew Arnott">
3 // Copyright (c) Andrew Arnott. All rights reserved.
5 //-----------------------------------------------------------------------
7 namespace DotNetOpenAuth
.OpenId
.Extensions
.ProviderAuthenticationPolicy
{
9 using System
.Collections
.Generic
;
10 using System
.Globalization
;
13 using DotNetOpenAuth
.Messaging
;
15 internal static class PapeUtilities
{
17 /// Looks at the incoming fields and figures out what the aliases and name spaces for auth level types are.
19 internal static AliasManager
FindIncomingAliases(IDictionary
<string, string> fields
) {
20 AliasManager aliasManager
= new AliasManager();
22 foreach (var pair
in fields
) {
23 if (!pair
.Key
.StartsWith(Constants
.AuthLevelNamespaceDeclarationPrefix
, StringComparison
.Ordinal
)) {
27 string alias = pair
.Key
.Substring(Constants
.AuthLevelNamespaceDeclarationPrefix
.Length
);
28 aliasManager
.SetAlias(alias, pair
.Value
);
31 aliasManager
.SetPreferredAliasesWhereNotSet(Constants
.AuthenticationLevels
.PreferredTypeUriToAliasMap
);
36 internal static string ConcatenateListOfElements(IList
<string> values
) {
37 ErrorUtilities
.VerifyArgumentNotNull(values
, "values");
39 StringBuilder valuesList
= new StringBuilder();
40 foreach (string value in values
.Distinct()) {
41 if (value.Contains(" ")) {
42 throw new FormatException(string.Format(CultureInfo
.CurrentCulture
,
43 OpenIdStrings
.InvalidUri
, value));
45 valuesList
.Append(value);
46 valuesList
.Append(" ");
48 if (valuesList
.Length
> 0) {
49 valuesList
.Length
-= 1; // remove trailing space
51 return valuesList
.ToString();