diff options
Diffstat (limited to 'src')
49 files changed, 0 insertions, 3665 deletions
diff --git a/src/DotNetOpenAuth.Core.UI/Properties/AssemblyInfo.cs b/src/DotNetOpenAuth.Core.UI/Properties/AssemblyInfo.cs index bc4df6f..a8cd221 100644 --- a/src/DotNetOpenAuth.Core.UI/Properties/AssemblyInfo.cs +++ b/src/DotNetOpenAuth.Core.UI/Properties/AssemblyInfo.cs @@ -38,7 +38,6 @@ using System.Web.UI; [assembly: AllowPartiallyTrustedCallers] [assembly: InternalsVisibleTo("DotNetOpenAuth.Test, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.InfoCard, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.UI, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.RelyingParty, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] @@ -50,7 +49,6 @@ using System.Web.UI; [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] #else [assembly: InternalsVisibleTo("DotNetOpenAuth.Test")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.InfoCard")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.UI")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.RelyingParty")] diff --git a/src/DotNetOpenAuth.Core/Logger.cs b/src/DotNetOpenAuth.Core/Logger.cs index d14fd8a..a8b977e 100644 --- a/src/DotNetOpenAuth.Core/Logger.cs +++ b/src/DotNetOpenAuth.Core/Logger.cs @@ -75,11 +75,6 @@ namespace DotNetOpenAuth { private static readonly ILog oauth = Create("DotNetOpenAuth.OAuth"); /// <summary> - /// Backing field for the <see cref="InfoCard"/> property. - /// </summary> - private static readonly ILog infocard = Create("DotNetOpenAuth.InfoCard"); - - /// <summary> /// Gets the logger for general library logging. /// </summary> internal static ILog Library { get { return library; } } @@ -129,11 +124,6 @@ namespace DotNetOpenAuth { /// </summary> internal static ILog OAuth { get { return oauth; } } - /// <summary> - /// Gets the logger for high-level InfoCard events. - /// </summary> - internal static ILog InfoCard { get { return infocard; } } - #endregion /// <summary> diff --git a/src/DotNetOpenAuth.Core/Properties/AssemblyInfo.cs b/src/DotNetOpenAuth.Core/Properties/AssemblyInfo.cs index 5ffa274..e5beeeb 100644 --- a/src/DotNetOpenAuth.Core/Properties/AssemblyInfo.cs +++ b/src/DotNetOpenAuth.Core/Properties/AssemblyInfo.cs @@ -37,15 +37,12 @@ using System.Web.UI; [assembly: InternalsVisibleTo("DotNetOpenAuth.Test, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] [assembly: InternalsVisibleTo("DotNetOpenAuth.Core.UI, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.InfoCard, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.InfoCard.UI, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.UI, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.RelyingParty, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.RelyingParty.UI, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.Provider, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.Provider.UI, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OpenIdInfoCard.UI, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth.Common, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth.Consumer, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] @@ -63,15 +60,12 @@ using System.Web.UI; #else [assembly: InternalsVisibleTo("DotNetOpenAuth.Test")] [assembly: InternalsVisibleTo("DotNetOpenAuth.Core.UI")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.InfoCard")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.InfoCard.UI")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.UI")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.RelyingParty")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.RelyingParty.UI")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.Provider")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.Provider.UI")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OpenIdInfoCard.UI")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth.Common")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth.Consumer")] diff --git a/src/DotNetOpenAuth.InfoCard.UI/ComponentModel/IssuersSuggestions.cs b/src/DotNetOpenAuth.InfoCard.UI/ComponentModel/IssuersSuggestions.cs deleted file mode 100644 index 64e9dea..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/ComponentModel/IssuersSuggestions.cs +++ /dev/null @@ -1,32 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="IssuersSuggestions.cs" company="Outercurve Foundation"> -// Copyright (c) Outercurve Foundation. All rights reserved. -// </copyright> -//----------------------------------------------------------------------- - -namespace DotNetOpenAuth.ComponentModel { - using System; - using System.Diagnostics.Contracts; - using DotNetOpenAuth.InfoCard; - - /// <summary> - /// A design-time helper to give a Uri property an auto-complete functionality - /// listing the URIs in the <see cref="WellKnownIssuers"/> class. - /// </summary> - public class IssuersSuggestions : SuggestedStringsConverter { - /// <summary> - /// Initializes a new instance of the <see cref="IssuersSuggestions"/> class. - /// </summary> - [Obsolete("This class is meant for design-time use within an IDE, and not meant to be used directly by runtime code.")] - public IssuersSuggestions() { - } - - /// <summary> - /// Gets the type to reflect over to extract the well known values. - /// </summary> - [Pure] - protected override Type WellKnownValuesType { - get { return typeof(WellKnownIssuers); } - } - } -} diff --git a/src/DotNetOpenAuth.InfoCard.UI/ComponentModel/UriConverter.cs b/src/DotNetOpenAuth.InfoCard.UI/ComponentModel/UriConverter.cs deleted file mode 100644 index 253200e..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/ComponentModel/UriConverter.cs +++ /dev/null @@ -1,117 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="UriConverter.cs" company="Outercurve Foundation"> -// Copyright (c) Outercurve Foundation. All rights reserved. -// </copyright> -//----------------------------------------------------------------------- - -namespace DotNetOpenAuth.ComponentModel { - using System; - using System.Collections; - using System.ComponentModel; - using System.ComponentModel.Design.Serialization; - using System.Diagnostics.Contracts; - using System.Linq; - using System.Reflection; - - /// <summary> - /// A design-time helper to allow controls to have properties - /// of type <see cref="Uri"/>. - /// </summary> - public class UriConverter : ConverterBase<Uri> { - /// <summary> - /// Initializes a new instance of the UriConverter class. - /// </summary> - protected UriConverter() { - } - - /// <summary> - /// Gets the type to reflect over to extract the well known values. - /// </summary> - protected virtual Type WellKnownValuesType { - get { return null; } - } - - /// <summary> - /// Returns whether the given value object is valid for this type and for the specified context. - /// </summary> - /// <param name="context">An <see cref="T:System.ComponentModel.ITypeDescriptorContext"/> that provides a format context.</param> - /// <param name="value">The <see cref="T:System.Object"/> to test for validity.</param> - /// <returns> - /// true if the specified value is valid for this object; otherwise, false. - /// </returns> - public override bool IsValid(ITypeDescriptorContext context, object value) { - Uri uriValue; - string stringValue; - if ((uriValue = value as Uri) != null) { - return uriValue.IsAbsoluteUri; - } else if ((stringValue = value as string) != null) { - Uri result; - return stringValue.Length == 0 || Uri.TryCreate(stringValue, UriKind.Absolute, out result); - } else { - return false; - } - } - - /// <summary> - /// Converts a value from its string representation to its strongly-typed object. - /// </summary> - /// <param name="value">The value.</param> - /// <returns>The strongly-typed object.</returns> - [Pure] - protected override Uri ConvertFrom(string value) { - return string.IsNullOrEmpty(value) ? null : new Uri(value); - } - - /// <summary> - /// Creates the reflection instructions for recreating an instance later. - /// </summary> - /// <param name="value">The value to recreate later.</param> - /// <returns> - /// The description of how to recreate an instance. - /// </returns> - [Pure] - protected override InstanceDescriptor CreateFrom(Uri value) { - if (value == null) { - return null; - } - - MemberInfo uriCtor = typeof(Uri).GetConstructor(new Type[] { typeof(string) }); - return CreateInstanceDescriptor(uriCtor, new object[] { value.AbsoluteUri }); - } - - /// <summary> - /// Converts the strongly-typed value to a string. - /// </summary> - /// <param name="value">The value to convert.</param> - /// <returns>The string representation of the object.</returns> - [Pure] - protected override string ConvertToString(Uri value) { - if (value == null) { - return null; - } - - return value.AbsoluteUri; - } - - /// <summary> - /// Gets the standard claim type URIs known to the library. - /// </summary> - /// <returns>An array of the standard claim types.</returns> - [Pure] - protected override ICollection GetStandardValuesForCache() { - if (this.WellKnownValuesType != null) { - var fields = from field in this.WellKnownValuesType.GetFields(BindingFlags.Static | BindingFlags.Public) - let value = (string)field.GetValue(null) - where value != null - select new Uri(value); - var properties = from prop in this.WellKnownValuesType.GetProperties(BindingFlags.Static | BindingFlags.Public) - let value = (string)prop.GetValue(null, null) - where value != null - select new Uri(value); - return fields.Concat(properties).ToArray(); - } else { - return new Uri[0]; - } - } - } -} diff --git a/src/DotNetOpenAuth.InfoCard.UI/DotNetOpenAuth.InfoCard.UI.csproj b/src/DotNetOpenAuth.InfoCard.UI/DotNetOpenAuth.InfoCard.UI.csproj deleted file mode 100644 index 3e8fcf9..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/DotNetOpenAuth.InfoCard.UI.csproj +++ /dev/null @@ -1,79 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), EnlistmentInfo.props))\EnlistmentInfo.props" Condition=" '$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), EnlistmentInfo.props))' != '' " /> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> - </PropertyGroup> - <Import Project="$(ProjectRoot)tools\DotNetOpenAuth.props" /> - <PropertyGroup> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{E040EB58-B4D2-457B-A023-AE6EF3BD34DE}</ProjectGuid> - <AppDesignerFolder>Properties</AppDesignerFolder> - <AssemblyName>DotNetOpenAuth.InfoCard.UI</AssemblyName> - </PropertyGroup> - <Import Project="$(ProjectRoot)tools\DotNetOpenAuth.Product.props" /> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - </PropertyGroup> - <ItemGroup> - <Compile Include="ComponentModel\IssuersSuggestions.cs" /> - <Compile Include="ComponentModel\UriConverter.cs" /> - <Compile Include="InfoCard\ClaimType.cs" /> - <Compile Include="InfoCard\InfoCardImage.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - </ItemGroup> - <ItemGroup Condition=" '$(NoUIControls)' != 'true' "> - <Compile Include="InfoCard\ReceivingTokenEventArgs.cs" /> - <Compile Include="InfoCard\TokenProcessingErrorEventArgs.cs" /> - <Compile Include="InfoCard\InfoCardSelector.cs" /> - <Compile Include="InfoCard\ReceivedTokenEventArgs.cs" /> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="InfoCard\infocard_114x80.png" /> - <EmbeddedResource Include="InfoCard\infocard_14x10.png" /> - <EmbeddedResource Include="InfoCard\infocard_214x150.png" /> - <EmbeddedResource Include="InfoCard\infocard_23x16.png" /> - <EmbeddedResource Include="InfoCard\infocard_300x210.png" /> - <EmbeddedResource Include="InfoCard\infocard_34x24.png" /> - <EmbeddedResource Include="InfoCard\infocard_365x256.png" /> - <EmbeddedResource Include="InfoCard\infocard_41x29.png" /> - <EmbeddedResource Include="InfoCard\infocard_50x35.png" /> - <EmbeddedResource Include="InfoCard\infocard_60x42.png" /> - <EmbeddedResource Include="InfoCard\infocard_71x50.png" /> - <EmbeddedResource Include="InfoCard\infocard_81x57.png" /> - <EmbeddedResource Include="InfoCard\infocard_92x64.png" /> - <EmbeddedResource Include="InfoCard\SupportingScript.js"> - <Copyright>$(StandardCopyright)</Copyright> - </EmbeddedResource> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\DotNetOpenAuth.InfoCard\DotNetOpenAuth.InfoCard.csproj"> - <Project>{408D10B8-34BA-4CBD-B7AA-FEB1907ABA4C}</Project> - <Name>DotNetOpenAuth.InfoCard</Name> - </ProjectReference> - <ProjectReference Include="..\DotNetOpenAuth.Core.UI\DotNetOpenAuth.Core.UI.csproj"> - <Project>{173E7B8D-E751-46E2-A133-F72297C0D2F4}</Project> - <Name>DotNetOpenAuth.Core.UI</Name> - </ProjectReference> - <ProjectReference Include="..\DotNetOpenAuth.Core\DotNetOpenAuth.Core.csproj"> - <Project>{60426312-6AE5-4835-8667-37EDEA670222}</Project> - <Name>DotNetOpenAuth.Core</Name> - </ProjectReference> - </ItemGroup> - <ItemGroup> - <Reference Include="Validation, Version=2.0.0.0, Culture=neutral, PublicKeyToken=2fc06f0d701809a7, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Validation.2.0.2.13022\lib\portable-windows8+net40+sl5+windowsphone8\Validation.dll</HintPath> - </Reference> - </ItemGroup> - <ItemGroup> - <None Include="packages.config" /> - </ItemGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <Import Project="$(ProjectRoot)tools\DotNetOpenAuth.targets" /> - <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), EnlistmentInfo.targets))\EnlistmentInfo.targets" Condition=" '$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), EnlistmentInfo.targets))' != '' " /> - <Import Project="$(SolutionDir)\.nuget\nuget.targets" /> -</Project>
\ No newline at end of file diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/ClaimType.cs b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/ClaimType.cs deleted file mode 100644 index 53898ba..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/ClaimType.cs +++ /dev/null @@ -1,53 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="ClaimType.cs" company="Outercurve Foundation"> -// Copyright (c) Outercurve Foundation. All rights reserved. -// </copyright> -//----------------------------------------------------------------------- - -namespace DotNetOpenAuth.InfoCard { - using System; - using System.ComponentModel; - using System.IdentityModel.Claims; - using System.Web.UI; - - /// <summary> - /// Description of a claim that is requested or required in a submitted Information Card. - /// </summary> - [PersistChildren(false)] - [Serializable] - public class ClaimType { - /// <summary> - /// Initializes a new instance of the <see cref="ClaimType"/> class. - /// </summary> - public ClaimType() { - } - - /// <summary> - /// Gets or sets the URI of a requested claim. - /// </summary> - /// <remarks> - /// For a list of well-known claim type URIs, see the <see cref="ClaimTypes"/> class. - /// </remarks> - [TypeConverter(typeof(ComponentModel.ClaimTypeSuggestions))] - public string Name { get; set; } - - /// <summary> - /// Gets or sets a value indicating whether this claim is optional. - /// </summary> - /// <value> - /// <c>true</c> if this instance is optional; otherwise, <c>false</c>. - /// </value> - [DefaultValue(false)] - public bool IsOptional { get; set; } - - /// <summary> - /// Returns a <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>. - /// </summary> - /// <returns> - /// A <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>. - /// </returns> - public override string ToString() { - return this.Name ?? "<no name>"; - } - } -} diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/InfoCardImage.cs b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/InfoCardImage.cs deleted file mode 100644 index cdb0562..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/InfoCardImage.cs +++ /dev/null @@ -1,137 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="InfoCardImage.cs" company="Dominick Baier, Andrew Arnott"> -// Copyright (c) Dominick Baier, Outercurve Foundation. All rights reserved. -// </copyright> -// <license>New BSD License</license> -//----------------------------------------------------------------------- - -// embedded images -[assembly: System.Web.UI.WebResource(DotNetOpenAuth.Util.DefaultNamespace + ".InfoCard.infocard_114x80.png", "image/png")] -[assembly: System.Web.UI.WebResource(DotNetOpenAuth.Util.DefaultNamespace + ".InfoCard.infocard_14x10.png", "image/png")] -[assembly: System.Web.UI.WebResource(DotNetOpenAuth.Util.DefaultNamespace + ".InfoCard.infocard_214x150.png", "image/png")] -[assembly: System.Web.UI.WebResource(DotNetOpenAuth.Util.DefaultNamespace + ".InfoCard.infocard_23x16.png", "image/png")] -[assembly: System.Web.UI.WebResource(DotNetOpenAuth.Util.DefaultNamespace + ".InfoCard.infocard_300x210.png", "image/png")] -[assembly: System.Web.UI.WebResource(DotNetOpenAuth.Util.DefaultNamespace + ".InfoCard.infocard_34x24.png", "image/png")] -[assembly: System.Web.UI.WebResource(DotNetOpenAuth.Util.DefaultNamespace + ".InfoCard.infocard_365x256.png", "image/png")] -[assembly: System.Web.UI.WebResource(DotNetOpenAuth.Util.DefaultNamespace + ".InfoCard.infocard_41x29.png", "image/png")] -[assembly: System.Web.UI.WebResource(DotNetOpenAuth.Util.DefaultNamespace + ".InfoCard.infocard_50x35.png", "image/png")] -[assembly: System.Web.UI.WebResource(DotNetOpenAuth.Util.DefaultNamespace + ".InfoCard.infocard_60x42.png", "image/png")] -[assembly: System.Web.UI.WebResource(DotNetOpenAuth.Util.DefaultNamespace + ".InfoCard.infocard_71x50.png", "image/png")] -[assembly: System.Web.UI.WebResource(DotNetOpenAuth.Util.DefaultNamespace + ".InfoCard.infocard_81x57.png", "image/png")] -[assembly: System.Web.UI.WebResource(DotNetOpenAuth.Util.DefaultNamespace + ".InfoCard.infocard_92x64.png", "image/png")] - -namespace DotNetOpenAuth.InfoCard { - using System; - using System.Diagnostics.CodeAnalysis; - using System.Globalization; - - /// <summary> - /// A set of sizes for which standard InfoCard icons are available. - /// </summary> - public enum InfoCardImageSize { - /// <summary> - /// A standard InfoCard icon with size 14x10 - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "x", Justification = "By design")] - Size14x10, - - /// <summary> - /// A standard InfoCard icon with size 23x16 - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "x", Justification = "By design")] - Size23x16, - - /// <summary> - /// A standard InfoCard icon with size 34x24 - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "x", Justification = "By design")] - Size34x24, - - /// <summary> - /// A standard InfoCard icon with size 41x29 - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "x", Justification = "By design")] - Size41x29, - - /// <summary> - /// A standard InfoCard icon with size 50x35 - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "x", Justification = "By design")] - Size50x35, - - /// <summary> - /// A standard InfoCard icon with size 60x42 - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "x", Justification = "By design")] - Size60x42, - - /// <summary> - /// A standard InfoCard icon with size 71x50 - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "x", Justification = "By design")] - Size71x50, - - /// <summary> - /// A standard InfoCard icon with size 92x64 - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "x", Justification = "By design")] - Size92x64, - - /// <summary> - /// A standard InfoCard icon with size 114x80 - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "x", Justification = "By design")] - Size114x80, - - /// <summary> - /// A standard InfoCard icon with size 164x108 - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "x", Justification = "By design")] - Size164x108, - - /// <summary> - /// A standard InfoCard icon with size 214x50 - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "x", Justification = "By design")] - Size214x50, - - /// <summary> - /// A standard InfoCard icon with size 300x210 - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "x", Justification = "By design")] - Size300x210, - - /// <summary> - /// A standard InfoCard icon with size 365x256 - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "x", Justification = "By design")] - Size365x256, - } - - /// <summary> - /// Assists in selecting the InfoCard image to display in the user agent. - /// </summary> - internal static class InfoCardImage { - /// <summary> - /// The default size of the InfoCard icon to use. - /// </summary> - internal const InfoCardImageSize DefaultImageSize = InfoCardImageSize.Size114x80; - - /// <summary> - /// The format to use when generating the image manifest resource stream name. - /// </summary> - private const string UrlFormatString = Util.DefaultNamespace + ".InfoCard.infocard_{0}.png"; - - /// <summary> - /// Gets the name of the image manifest resource stream for an InfoCard image of the given size. - /// </summary> - /// <param name="size">The size of the desired InfoCard image.</param> - /// <returns>The manifest resource stream name.</returns> - internal static string GetImageManifestResourceStreamName(InfoCardImageSize size) { - string imageSize = size.ToString(); - Assumes.True(imageSize.Length >= 6); - imageSize = imageSize.Substring(4); - return string.Format(CultureInfo.InvariantCulture, UrlFormatString, imageSize); - } - } -} diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/InfoCardSelector.cs b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/InfoCardSelector.cs deleted file mode 100644 index 3b6b368..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/InfoCardSelector.cs +++ /dev/null @@ -1,764 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="InfoCardSelector.cs" company="Outercurve Foundation"> -// Copyright (c) Outercurve Foundation. All rights reserved. -// Certain elements are Copyright (c) 2007 Dominick Baier. -// </copyright> -//----------------------------------------------------------------------- - -[assembly: System.Web.UI.WebResource(DotNetOpenAuth.InfoCard.InfoCardSelector.ScriptResourceName, "text/javascript")] - -namespace DotNetOpenAuth.InfoCard { - using System; - using System.Collections.ObjectModel; - using System.ComponentModel; - using System.Diagnostics.CodeAnalysis; - using System.Diagnostics.Contracts; - using System.Drawing.Design; - using System.Globalization; - using System.Linq; - using System.Text; - using System.Text.RegularExpressions; - using System.Web; - using System.Web.UI; - using System.Web.UI.HtmlControls; - using System.Web.UI.WebControls; - using System.Xml; - using DotNetOpenAuth.Messaging; - using Validation; - - /// <summary> - /// The style to use for NOT displaying a hidden region. - /// </summary> - public enum RenderMode { - /// <summary> - /// A hidden region should be invisible while still occupying space in the page layout. - /// </summary> - Static, - - /// <summary> - /// A hidden region should collapse so that it does not occupy space in the page layout. - /// </summary> - Dynamic - } - - /// <summary> - /// An Information Card selector ASP.NET control. - /// </summary> - [ParseChildren(true, "ClaimsRequested")] - [PersistChildren(false)] - [DefaultEvent("ReceivedToken")] - [ToolboxData("<{0}:InfoCardSelector runat=\"server\"><ClaimsRequested><{0}:ClaimType Name=\"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier\" /></ClaimsRequested><UnsupportedTemplate><p>Your browser does not support Information Cards.</p></UnsupportedTemplate></{0}:InfoCardSelector>")] - public class InfoCardSelector : CompositeControl, IPostBackEventHandler { - /// <summary> - /// The resource name for getting at the SupportingScript.js embedded manifest stream. - /// </summary> - internal const string ScriptResourceName = "DotNetOpenAuth.InfoCard.SupportingScript.js"; - - #region Property constants - - /// <summary> - /// Default value for the <see cref="RenderMode"/> property. - /// </summary> - private const RenderMode RenderModeDefault = RenderMode.Dynamic; - - /// <summary> - /// Default value for the <see cref="AutoPostBack"/> property. - /// </summary> - private const bool AutoPostBackDefault = true; - - /// <summary> - /// Default value for the <see cref="AutoPopup"/> property. - /// </summary> - private const bool AutoPopupDefault = false; - - /// <summary> - /// Default value for the <see cref="PrivacyUrl"/> property. - /// </summary> - private const string PrivacyUrlDefault = ""; - - /// <summary> - /// Default value for the <see cref="PrivacyVersion"/> property. - /// </summary> - private const string PrivacyVersionDefault = ""; - - /// <summary> - /// Default value for the <see cref="InfoCardImage"/> property. - /// </summary> - private const InfoCardImageSize InfoCardImageDefault = InfoCardImage.DefaultImageSize; - - /// <summary> - /// Default value for the <see cref="IssuerPolicy"/> property. - /// </summary> - private const string IssuerPolicyDefault = ""; - - /// <summary> - /// Default value for the <see cref="Issuer"/> property. - /// </summary> - private const string IssuerDefault = WellKnownIssuers.SelfIssued; - - /// <summary> - /// The default value for the <see cref="TokenType"/> property. - /// </summary> - private const string TokenTypeDefault = "urn:oasis:names:tc:SAML:1.0:assertion"; - - /// <summary> - /// The viewstate key for storing the <see cref="Issuer" /> property. - /// </summary> - private const string IssuerViewStateKey = "Issuer"; - - /// <summary> - /// The viewstate key for storing the <see cref="IssuerPolicy" /> property. - /// </summary> - private const string IssuerPolicyViewStateKey = "IssuerPolicy"; - - /// <summary> - /// The viewstate key for storing the <see cref="AutoPopup" /> property. - /// </summary> - private const string AutoPopupViewStateKey = "AutoPopup"; - - /// <summary> - /// The viewstate key for storing the <see cref="ClaimsRequested" /> property. - /// </summary> - private const string ClaimsRequestedViewStateKey = "ClaimsRequested"; - - /// <summary> - /// The viewstate key for storing the <see cref="TokenType" /> property. - /// </summary> - private const string TokenTypeViewStateKey = "TokenType"; - - /// <summary> - /// The viewstate key for storing the <see cref="PrivacyUrl" /> property. - /// </summary> - private const string PrivacyUrlViewStateKey = "PrivacyUrl"; - - /// <summary> - /// The viewstate key for storing the <see cref="PrivacyVersion" /> property. - /// </summary> - private const string PrivacyVersionViewStateKey = "PrivacyVersion"; - - /// <summary> - /// The viewstate key for storing the <see cref="Audience" /> property. - /// </summary> - private const string AudienceViewStateKey = "Audience"; - - /// <summary> - /// The viewstate key for storing the <see cref="AutoPostBack" /> property. - /// </summary> - private const string AutoPostBackViewStateKey = "AutoPostBack"; - - /// <summary> - /// The viewstate key for storing the <see cref="ImageSize" /> property. - /// </summary> - private const string ImageSizeViewStateKey = "ImageSize"; - - /// <summary> - /// The viewstate key for storing the <see cref="RenderMode" /> property. - /// </summary> - private const string RenderModeViewStateKey = "RenderMode"; - - #endregion - - #region Categories - - /// <summary> - /// The "Behavior" property category. - /// </summary> - private const string BehaviorCategory = "Behavior"; - - /// <summary> - /// The "Appearance" property category. - /// </summary> - private const string AppearanceCategory = "Appearance"; - - /// <summary> - /// The "InfoCard" property category. - /// </summary> - private const string InfoCardCategory = "InfoCard"; - - #endregion - - /// <summary> - /// The panel containing the controls to display if InfoCard is supported in the user agent. - /// </summary> - private Panel infoCardSupportedPanel; - - /// <summary> - /// The panel containing the controls to display if InfoCard is NOT supported in the user agent. - /// </summary> - private Panel infoCardNotSupportedPanel; - - /// <summary> - /// Recalls whether the <see cref="Audience"/> property has been set yet, - /// so its default can be set as soon as possible without overwriting - /// an intentional value. - /// </summary> - private bool audienceSet; - - /// <summary> - /// Initializes a new instance of the <see cref="InfoCardSelector"/> class. - /// </summary> - public InfoCardSelector() { - this.ToolTip = InfoCardStrings.SelectorClickPrompt; - Reporting.RecordFeatureUse(this); - } - - /// <summary> - /// Occurs when an InfoCard has been submitted but not decoded yet. - /// </summary> - [Category(InfoCardCategory)] - public event EventHandler<ReceivingTokenEventArgs> ReceivingToken; - - /// <summary> - /// Occurs when an InfoCard has been submitted and decoded. - /// </summary> - [Category(InfoCardCategory)] - public event EventHandler<ReceivedTokenEventArgs> ReceivedToken; - - /// <summary> - /// Occurs when an InfoCard token is submitted but an error occurs in processing. - /// </summary> - [Category(InfoCardCategory)] - public event EventHandler<TokenProcessingErrorEventArgs> TokenProcessingError; - - #region Properties - - /// <summary> - /// Gets the set of claims that are requested from the Information Card. - /// </summary> - [Description("Specifies the required and optional claims.")] - [PersistenceMode(PersistenceMode.InnerProperty), Category(InfoCardCategory)] - public Collection<ClaimType> ClaimsRequested { - get { - if (this.ViewState[ClaimsRequestedViewStateKey] == null) { - var claims = new Collection<ClaimType>(); - this.ViewState[ClaimsRequestedViewStateKey] = claims; - return claims; - } else { - return (Collection<ClaimType>)this.ViewState[ClaimsRequestedViewStateKey]; - } - } - } - - /// <summary> - /// Gets or sets the issuer URI. - /// </summary> - [Description("When receiving managed cards, this is the only Issuer whose cards will be accepted.")] - [Category(InfoCardCategory), DefaultValue(IssuerDefault)] - [TypeConverter(typeof(ComponentModel.IssuersSuggestions))] - public string Issuer { - get { return (string)this.ViewState[IssuerViewStateKey] ?? IssuerDefault; } - set { this.ViewState[IssuerViewStateKey] = value; } - } - - /// <summary> - /// Gets or sets the issuer policy URI. - /// </summary> - [Description("Specifies the URI of the issuer MEX endpoint")] - [Category(InfoCardCategory), DefaultValue(IssuerPolicyDefault)] - public string IssuerPolicy { - get { return (string)this.ViewState[IssuerPolicyViewStateKey] ?? IssuerPolicyDefault; } - set { this.ViewState[IssuerPolicyViewStateKey] = value; } - } - - /// <summary> - /// Gets or sets the URL to this site's privacy policy. - /// </summary> - [Description("The URL to this site's privacy policy.")] - [Category(InfoCardCategory), DefaultValue(PrivacyUrlDefault)] - [SuppressMessage("Microsoft.Usage", "CA1806:DoNotIgnoreMethodResults", MessageId = "System.Uri", Justification = "We construct a Uri to validate the format of the string.")] - [SuppressMessage("Microsoft.Usage", "CA2234:PassSystemUriObjectsInsteadOfStrings", Justification = "That overload is NOT the same.")] - [SuppressMessage("Microsoft.Design", "CA1056:UriPropertiesShouldNotBeStrings", Justification = "This can take ~/ paths.")] - public string PrivacyUrl { - get { - return (string)this.ViewState[PrivacyUrlViewStateKey] ?? PrivacyUrlDefault; - } - - set { - ErrorUtilities.VerifyOperation(string.IsNullOrEmpty(value) || this.Page == null || this.DesignMode || (HttpContext.Current != null && HttpContext.Current.Request != null), MessagingStrings.HttpContextRequired); - if (!string.IsNullOrEmpty(value)) { - if (this.Page != null && !this.DesignMode) { - // Validate new value by trying to construct a Uri based on it. - new Uri(new HttpRequestWrapper(HttpContext.Current.Request).GetPublicFacingUrl(), this.Page.ResolveUrl(value)); // throws an exception on failure. - } else { - // We can't fully test it, but it should start with either ~/ or a protocol. - if (Regex.IsMatch(value, @"^https?://")) { - new Uri(value); // make sure it's fully-qualified, but ignore wildcards - } else if (value.StartsWith("~/", StringComparison.Ordinal)) { - // this is valid too - } else { - throw new UriFormatException(); - } - } - } - - this.ViewState[PrivacyUrlViewStateKey] = value; - } - } - - /// <summary> - /// Gets or sets the version of the privacy policy file. - /// </summary> - [Description("Specifies the version of the privacy policy file")] - [Category(InfoCardCategory), DefaultValue(PrivacyVersionDefault)] - public string PrivacyVersion { - get { return (string)this.ViewState[PrivacyVersionViewStateKey] ?? PrivacyVersionDefault; } - set { this.ViewState[PrivacyVersionViewStateKey] = value; } - } - - /// <summary> - /// Gets or sets the URI that must be found for the SAML token's intended audience - /// in order for the token to be processed. - /// </summary> - /// <value>Typically the URI of the page hosting the control, or <c>null</c> to disable audience verification.</value> - /// <remarks> - /// Disabling audience verification introduces a security risk - /// because tokens can be redirected to allow access to unintended resources. - /// </remarks> - [Description("Specifies the URI that must be found for the SAML token's intended audience.")] - [Bindable(true), Category(InfoCardCategory)] - [TypeConverter(typeof(ComponentModel.UriConverter))] - [UrlProperty, Editor("System.Web.UI.Design.UrlEditor, System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(UITypeEditor))] - public Uri Audience { - get { - return (Uri)this.ViewState[AudienceViewStateKey]; - } - - set { - this.ViewState[AudienceViewStateKey] = value; - this.audienceSet = true; - } - } - - /// <summary> - /// Gets or sets a value indicating whether a postback will automatically - /// be invoked when the user selects an Information Card. - /// </summary> - [Description("Specifies if the pages automatically posts back after the user has selected a card")] - [Category(BehaviorCategory), DefaultValue(AutoPostBackDefault)] - public bool AutoPostBack { - get { return (bool)(this.ViewState[AutoPostBackViewStateKey] ?? AutoPostBackDefault); } - set { this.ViewState[AutoPostBackViewStateKey] = value; } - } - - /// <summary> - /// Gets or sets the size of the standard InfoCard image to display. - /// </summary> - /// <value>The default size is 114x80.</value> - [Description("The size of the InfoCard image to use. Defaults to 114x80.")] - [DefaultValue(InfoCardImageDefault), Category(AppearanceCategory)] - public InfoCardImageSize ImageSize { - get { return (InfoCardImageSize)(this.ViewState[ImageSizeViewStateKey] ?? InfoCardImageDefault); } - set { this.ViewState[ImageSizeViewStateKey] = value; } - } - - /// <summary> - /// Gets or sets the template to display when the user agent lacks - /// an Information Card selector. - /// </summary> - [Browsable(false), DefaultValue("")] - [PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(InfoCardSelector))] - public virtual ITemplate UnsupportedTemplate { get; set; } - - /// <summary> - /// Gets or sets a value indicating whether a hidden region (either - /// the unsupported or supported InfoCard HTML) - /// collapses or merely becomes invisible when it is not to be displayed. - /// </summary> - [Description("Whether the hidden region collapses or merely becomes invisible.")] - [Category(AppearanceCategory), DefaultValue(RenderModeDefault)] - public RenderMode RenderMode { - get { return (RenderMode)(this.ViewState[RenderModeViewStateKey] ?? RenderModeDefault); } - set { this.ViewState[RenderModeViewStateKey] = value; } - } - - /// <summary> - /// Gets or sets a value indicating whether the identity selector will be triggered at page load. - /// </summary> - [Description("Controls whether the InfoCard selector automatically appears when the page is loaded.")] - [Category(BehaviorCategory), DefaultValue(AutoPopupDefault)] - public bool AutoPopup { - get { return (bool)(this.ViewState[AutoPopupViewStateKey] ?? AutoPopupDefault); } - set { this.ViewState[AutoPopupViewStateKey] = value; } - } - - #endregion - - /// <summary> - /// Gets the name of the hidden field that is used to transport the token back to the server. - /// </summary> - private string HiddenFieldName { - get { return this.ClientID + "_tokenxml"; } - } - - /// <summary> - /// Gets the id of the OBJECT tag that creates the InfoCard Selector. - /// </summary> - private string SelectorObjectId { - get { return this.ClientID + "_cs"; } - } - - /// <summary> - /// Gets the XML token, which will be encrypted if it was received over SSL. - /// </summary> - private string TokenXml { - get { return this.Page.Request.Form[this.HiddenFieldName]; } - } - - /// <summary> - /// Gets or sets the type of token the page is prepared to receive. - /// </summary> - [Description("Specifies the token type. Defaults to SAML 1.0")] - [DefaultValue(TokenTypeDefault), Category(InfoCardCategory)] - private string TokenType { - get { return (string)this.ViewState[TokenTypeViewStateKey] ?? TokenTypeDefault; } - set { this.ViewState[TokenTypeViewStateKey] = value; } - } - - /// <summary> - /// When implemented by a class, enables a server control to process an event raised when a form is posted to the server. - /// </summary> - /// <param name="eventArgument">A <see cref="T:System.String"/> that represents an optional event argument to be passed to the event handler.</param> - void IPostBackEventHandler.RaisePostBackEvent(string eventArgument) { - this.RaisePostBackEvent(eventArgument); - } - - /// <summary> - /// When implemented by a class, enables a server control to process an event raised when a form is posted to the server. - /// </summary> - /// <param name="eventArgument">A <see cref="T:System.String"/> that represents an optional event argument to be passed to the event handler.</param> - [SuppressMessage("Microsoft.Design", "CA1030:UseEventsWhereAppropriate", Justification = "Predefined signature.")] - protected virtual void RaisePostBackEvent(string eventArgument) { - if (!string.IsNullOrEmpty(this.TokenXml)) { - try { - ReceivingTokenEventArgs receivingArgs = this.OnReceivingToken(this.TokenXml); - - if (!receivingArgs.Cancel) { - try { - Token token = Token.Read(this.TokenXml, this.Audience, receivingArgs.DecryptingTokens); - this.OnReceivedToken(token); - } catch (InformationCardException ex) { - this.OnTokenProcessingError(this.TokenXml, ex); - } - } - } catch (XmlException ex) { - this.OnTokenProcessingError(this.TokenXml, ex); - } - } - } - - /// <summary> - /// Fires the <see cref="ReceivingToken"/> event. - /// </summary> - /// <param name="tokenXml">The token XML, prior to any processing.</param> - /// <returns>The event arguments sent to the event handlers.</returns> - [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "decryptor", Justification = "By design")] - protected virtual ReceivingTokenEventArgs OnReceivingToken(string tokenXml) { - Requires.NotNull(tokenXml, "tokenXml"); - - var args = new ReceivingTokenEventArgs(tokenXml); - var receivingToken = this.ReceivingToken; - if (receivingToken != null) { - receivingToken(this, args); - } - - return args; - } - - /// <summary> - /// Fires the <see cref="ReceivedToken"/> event. - /// </summary> - /// <param name="token">The token, if it was decrypted.</param> - protected virtual void OnReceivedToken(Token token) { - Requires.NotNull(token, "token"); - - var receivedInfoCard = this.ReceivedToken; - if (receivedInfoCard != null) { - receivedInfoCard(this, new ReceivedTokenEventArgs(token)); - } - } - - /// <summary> - /// Fires the <see cref="TokenProcessingError"/> event. - /// </summary> - /// <param name="unprocessedToken">The unprocessed token.</param> - /// <param name="ex">The exception generated while processing the token.</param> - protected virtual void OnTokenProcessingError(string unprocessedToken, Exception ex) { - Requires.NotNull(unprocessedToken, "unprocessedToken"); - Requires.NotNull(ex, "ex"); - - var tokenProcessingError = this.TokenProcessingError; - if (tokenProcessingError != null) { - TokenProcessingErrorEventArgs args = new TokenProcessingErrorEventArgs(unprocessedToken, ex); - tokenProcessingError(this, args); - } - } - - /// <summary> - /// Raises the <see cref="E:System.Web.UI.Control.Init"/> event. - /// </summary> - /// <param name="e">An <see cref="T:System.EventArgs"/> object that contains the event data.</param> - protected override void OnInit(EventArgs e) { - // Give a default for the Audience property that allows for - // the aspx page to have preset it, and ViewState - // to initialize it (even to null) after this. - if (!this.audienceSet && !this.DesignMode) { - this.Audience = this.Page.Request.Url; - } - - base.OnInit(e); - this.Page.LoadComplete += delegate { this.EnsureChildControls(); }; - } - - /// <summary> - /// Called by the ASP.NET page framework to notify server controls that use composition-based implementation to create any child controls they contain in preparation for posting back or rendering. - /// </summary> - protected override void CreateChildControls() { - base.CreateChildControls(); - - this.Page.ClientScript.RegisterHiddenField(this.HiddenFieldName, string.Empty); - - this.Controls.Add(this.infoCardSupportedPanel = this.CreateInfoCardSupportedPanel()); - this.Controls.Add(this.infoCardNotSupportedPanel = this.CreateInfoCardUnsupportedPanel()); - - this.RenderSupportingScript(); - } - - /// <summary> - /// Raises the <see cref="E:System.Web.UI.Control.PreRender"/> event. - /// </summary> - /// <param name="e">An <see cref="T:System.EventArgs"/> object that contains the event data.</param> - protected override void OnPreRender(EventArgs e) { - base.OnPreRender(e); - - if (!this.DesignMode) { - // The Cardspace selector will display an ugly error to the user if - // the privacy URL is present but the privacy version is not. - ErrorUtilities.VerifyOperation(string.IsNullOrEmpty(this.PrivacyUrl) || !string.IsNullOrEmpty(this.PrivacyVersion), InfoCardStrings.PrivacyVersionRequiredWithPrivacyUrl); - } - - this.RegisterInfoCardSelectorObjectScript(); - } - - /// <summary> - /// Creates a control that renders to <Param Name="{0}" Value="{1}" /> - /// </summary> - /// <param name="name">The parameter name.</param> - /// <param name="value">The parameter value.</param> - /// <returns>The control that renders to the Param tag.</returns> - private static string CreateParamJs(string name, string value) { - string scriptFormat = @" objp = document.createElement('param'); - objp.name = {0}; - objp.value = {1}; - obj.appendChild(objp); -"; - return string.Format( - CultureInfo.InvariantCulture, - scriptFormat, - MessagingUtilities.GetSafeJavascriptValue(name), - MessagingUtilities.GetSafeJavascriptValue(value)); - } - - /// <summary> - /// Creates the panel whose contents are displayed to the user - /// on a user agent that has an Information Card selector. - /// </summary> - /// <returns>The Panel control</returns> - [Pure] - private Panel CreateInfoCardSupportedPanel() { - Panel supportedPanel = new Panel(); - - try { - if (!this.DesignMode) { - // At the user agent, assume InfoCard is not supported until - // the JavaScript discovers otherwise and reveals this panel. - supportedPanel.Style[HtmlTextWriterStyle.Display] = "none"; - } - - supportedPanel.Controls.Add(this.CreateInfoCardImage()); - - // trigger the selector at page load? - if (this.AutoPopup && !this.Page.IsPostBack) { - this.Page.ClientScript.RegisterStartupScript( - typeof(InfoCardSelector), - "selector_load_trigger", - this.GetInfoCardSelectorActivationScript(true), - true); - } - return supportedPanel; - } catch { - supportedPanel.Dispose(); - throw; - } - } - - /// <summary> - /// Gets the InfoCard selector activation script. - /// </summary> - /// <param name="alwaysPostback">Whether a postback should always immediately follow the selector, even if <see cref="AutoPostBack"/> is <c>false</c>.</param> - /// <returns>The javascript to inject into the surrounding context.</returns> - private string GetInfoCardSelectorActivationScript(bool alwaysPostback) { - // generate call do __doPostback - PostBackOptions options = new PostBackOptions(this); - string postback = string.Empty; - if (alwaysPostback || this.AutoPostBack) { - postback = this.Page.ClientScript.GetPostBackEventReference(options) + ";"; - } - - // generate the onclick script for the image - string invokeScript = string.Format( - CultureInfo.InvariantCulture, - @"if (document.infoCard.activate('{0}', '{1}')) {{ {2} }}", - this.SelectorObjectId, - this.HiddenFieldName, - postback); - - return invokeScript; - } - - /// <summary> - /// Creates the panel whose contents are displayed to the user - /// on a user agent that does not have an Information Card selector. - /// </summary> - /// <returns>The Panel control.</returns> - [Pure] - private Panel CreateInfoCardUnsupportedPanel() { - Panel unsupportedPanel = new Panel(); - try { - if (this.UnsupportedTemplate != null) { - this.UnsupportedTemplate.InstantiateIn(unsupportedPanel); - } - return unsupportedPanel; - } catch { - unsupportedPanel.Dispose(); - throw; - } - } - - /// <summary> - /// Adds the javascript that adds the info card selector <object> HTML tag to the page. - /// </summary> - [Pure] - private void RegisterInfoCardSelectorObjectScript() { - string scriptFormat = @"{{ - var obj = document.createElement('object'); - obj.type = 'application/x-informationcard'; - obj.id = {0}; - obj.style.display = 'none'; -"; - StringBuilder script = new StringBuilder(); - script.AppendFormat( - CultureInfo.InvariantCulture, - scriptFormat, - MessagingUtilities.GetSafeJavascriptValue(this.ClientID + "_cs")); - - if (!string.IsNullOrEmpty(this.Issuer)) { - script.AppendLine(CreateParamJs("issuer", this.Issuer)); - } - - if (!string.IsNullOrEmpty(this.IssuerPolicy)) { - script.AppendLine(CreateParamJs("issuerPolicy", this.IssuerPolicy)); - } - - if (!string.IsNullOrEmpty(this.TokenType)) { - script.AppendLine(CreateParamJs("tokenType", this.TokenType)); - } - - string requiredClaims, optionalClaims; - this.GetRequestedClaims(out requiredClaims, out optionalClaims); - ErrorUtilities.VerifyArgument(!string.IsNullOrEmpty(requiredClaims) || !string.IsNullOrEmpty(optionalClaims), InfoCardStrings.EmptyClaimListNotAllowed); - if (!string.IsNullOrEmpty(requiredClaims)) { - script.AppendLine(CreateParamJs("requiredClaims", requiredClaims)); - } - if (!string.IsNullOrEmpty(optionalClaims)) { - script.AppendLine(CreateParamJs("optionalClaims", optionalClaims)); - } - - if (!string.IsNullOrEmpty(this.PrivacyUrl)) { - string privacyUrl = this.DesignMode ? this.PrivacyUrl : new Uri(Page.Request.Url, Page.ResolveUrl(this.PrivacyUrl)).AbsoluteUri; - script.AppendLine(CreateParamJs("privacyUrl", privacyUrl)); - } - - if (!string.IsNullOrEmpty(this.PrivacyVersion)) { - script.AppendLine(CreateParamJs("privacyVersion", this.PrivacyVersion)); - } - - script.AppendLine(@"if (document.infoCard.isSupported()) { document.getElementsByTagName('head')[0].appendChild(obj); } -}"); - - this.Page.ClientScript.RegisterClientScriptBlock(typeof(InfoCardSelector), this.ClientID + "tag", script.ToString(), true); - } - - /// <summary> - /// Creates the info card clickable image. - /// </summary> - /// <returns>An Image object.</returns> - [Pure] - private Image CreateInfoCardImage() { - // add clickable image - Image image = new Image(); - try { - image.ImageUrl = this.Page.ClientScript.GetWebResourceUrl(typeof(InfoCardSelector), InfoCardImage.GetImageManifestResourceStreamName(this.ImageSize)); - image.AlternateText = InfoCardStrings.SelectorClickPrompt; - image.ToolTip = this.ToolTip; - image.Style[HtmlTextWriterStyle.Cursor] = "hand"; - - image.Attributes["onclick"] = this.GetInfoCardSelectorActivationScript(false); - return image; - } catch { - image.Dispose(); - throw; - } - } - - /// <summary> - /// Compiles lists of requested/required claims that should accompany - /// any submitted Information Card. - /// </summary> - /// <param name="required">A space-delimited list of claim type URIs for claims that must be included in a submitted Information Card.</param> - /// <param name="optional">A space-delimited list of claim type URIs for claims that may optionally be included in a submitted Information Card.</param> - [Pure] - private void GetRequestedClaims(out string required, out string optional) { - RequiresEx.ValidState(this.ClaimsRequested != null); - - var nonEmptyClaimTypes = this.ClaimsRequested.Where(c => c.Name != null); - - var optionalClaims = from claim in nonEmptyClaimTypes - where claim.IsOptional - select claim.Name; - var requiredClaims = from claim in nonEmptyClaimTypes - where !claim.IsOptional - select claim.Name; - - string[] requiredClaimsArray = requiredClaims.ToArray(); - string[] optionalClaimsArray = optionalClaims.ToArray(); - required = string.Join(" ", requiredClaimsArray); - optional = string.Join(" ", optionalClaimsArray); - Assumes.True(required != null); - Assumes.True(optional != null); - } - - /// <summary> - /// Adds Javascript snippets to the page to help the Information Card selector do its work, - /// or to downgrade gracefully if the user agent lacks an Information Card selector. - /// </summary> - private void RenderSupportingScript() { - RequiresEx.ValidState(this.infoCardSupportedPanel != null); - - this.Page.ClientScript.RegisterClientScriptResource(typeof(InfoCardSelector), ScriptResourceName); - - if (this.RenderMode == RenderMode.Static) { - this.Page.ClientScript.RegisterStartupScript( - typeof(InfoCardSelector), - "SelectorSupportingScript_" + this.ClientID, - string.Format(CultureInfo.InvariantCulture, "document.infoCard.checkStatic('{0}', '{1}');", this.infoCardSupportedPanel.ClientID, this.infoCardNotSupportedPanel.ClientID), - true); - } else if (RenderMode == RenderMode.Dynamic) { - this.Page.ClientScript.RegisterStartupScript( - typeof(InfoCardSelector), - "SelectorSupportingScript_" + this.ClientID, - string.Format(CultureInfo.InvariantCulture, "document.infoCard.checkDynamic('{0}', '{1}');", this.infoCardSupportedPanel.ClientID, this.infoCardNotSupportedPanel.ClientID), - true); - } - } - } -} diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/ReceivedTokenEventArgs.cs b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/ReceivedTokenEventArgs.cs deleted file mode 100644 index 2ec124b..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/ReceivedTokenEventArgs.cs +++ /dev/null @@ -1,41 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="ReceivedTokenEventArgs.cs" company="Outercurve Foundation"> -// Copyright (c) Outercurve Foundation. All rights reserved. -// </copyright> -//----------------------------------------------------------------------- - -namespace DotNetOpenAuth.InfoCard { - using System; - using System.Diagnostics.CodeAnalysis; - using System.Xml.XPath; - - /// <summary> - /// Arguments for the <see cref="InfoCardSelector.ReceivedToken"/> event. - /// </summary> - public class ReceivedTokenEventArgs : EventArgs { - /// <summary> - /// Initializes a new instance of the <see cref="ReceivedTokenEventArgs"/> class. - /// </summary> - /// <param name="token">The token.</param> - internal ReceivedTokenEventArgs(Token token) { - this.Token = token; - } - - /// <summary> - /// Gets the processed token. - /// </summary> - public Token Token { get; private set; } - -#if CONTRACTS_FULL - /// <summary> - /// Verifies conditions that should be true for any valid state of this object. - /// </summary> - [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Justification = "Called by code contracts.")] - [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Called by code contracts.")] - [ContractInvariantMethod] - private void ObjectInvariant() { - Contract.Invariant(this.Token != null); - } -#endif - } -} diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/ReceivingTokenEventArgs.cs b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/ReceivingTokenEventArgs.cs deleted file mode 100644 index 6de2ef0..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/ReceivingTokenEventArgs.cs +++ /dev/null @@ -1,100 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="ReceivingTokenEventArgs.cs" company="Outercurve Foundation"> -// Copyright (c) Outercurve Foundation. All rights reserved. -// </copyright> -//----------------------------------------------------------------------- - -namespace DotNetOpenAuth.InfoCard { - using System; - using System.Collections.Generic; - using System.Diagnostics.CodeAnalysis; - using System.IdentityModel.Tokens; - using System.Security.Cryptography.X509Certificates; - using Validation; - - /// <summary> - /// Arguments for the <see cref="InfoCardSelector.ReceivingToken"/> event. - /// </summary> - public class ReceivingTokenEventArgs : EventArgs { - /// <summary> - /// Initializes a new instance of the <see cref="ReceivingTokenEventArgs"/> class. - /// </summary> - /// <param name="tokenXml">The raw token XML, prior to any decryption.</param> - internal ReceivingTokenEventArgs(string tokenXml) { - Requires.NotNull(tokenXml, "tokenXml"); - - this.TokenXml = tokenXml; - this.IsEncrypted = Token.IsEncrypted(this.TokenXml); - this.DecryptingTokens = new List<SecurityToken>(); - } - - /// <summary> - /// Gets a value indicating whether the token is encrypted. - /// </summary> - /// <value> - /// <c>true</c> if the token is encrypted; otherwise, <c>false</c>. - /// </value> - public bool IsEncrypted { get; private set; } - - /// <summary> - /// Gets the raw token XML, prior to any decryption. - /// </summary> - public string TokenXml { get; private set; } - - /// <summary> - /// Gets or sets a value indicating whether processing - /// this token should be canceled. - /// </summary> - /// <value><c>true</c> if cancel; otherwise, <c>false</c>.</value> - /// <remarks> - /// If set the <c>true</c>, the <see cref="InfoCardSelector.ReceivedToken"/> - /// event will never be fired. - /// </remarks> - public bool Cancel { get; set; } - - /// <summary> - /// Gets a list where security tokens such as X.509 certificates may be - /// added to be used for token decryption. - /// </summary> - internal IList<SecurityToken> DecryptingTokens { get; private set; } - - /// <summary> - /// Adds a security token that may be used to decrypt the incoming token. - /// </summary> - /// <param name="securityToken">The security token.</param> - public void AddDecryptingToken(SecurityToken securityToken) { - Requires.NotNull(securityToken, "securityToken"); - this.DecryptingTokens.Add(securityToken); - } - - /// <summary> - /// Adds an X.509 certificate with a private key that may be used to decrypt the incoming token. - /// </summary> - /// <param name="certificate">The certificate.</param> - [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification = "False positive")] - public void AddDecryptingToken(X509Certificate2 certificate) { - Requires.NotNull(certificate, "certificate"); - Requires.That(certificate.HasPrivateKey, "certificate", "requires private key"); - var cert = new X509SecurityToken(certificate); - try { - this.AddDecryptingToken(cert); - } catch { - cert.Dispose(); - throw; - } - } - -#if CONTRACTS_FULL - /// <summary> - /// Verifies conditions that should be true for any valid state of this object. - /// </summary> - [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Justification = "Called by code contracts.")] - [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Called by code contracts.")] - [ContractInvariantMethod] - private void ObjectInvariant() { - Contract.Invariant(this.TokenXml != null); - Contract.Invariant(this.DecryptingTokens != null); - } -#endif - } -} diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/SupportingScript.js b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/SupportingScript.js deleted file mode 100644 index a883cd7..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/SupportingScript.js +++ /dev/null @@ -1,126 +0,0 @@ -/*jslint white: true, onevar: true, browser: true, undef: true, nomen: true, plusplus: true, bitwise: true, regexp: true, strict: true, newcap: true, immed: true */ -"use strict"; -document.infoCard = { - isSupported: function () { - /// <summary> - /// Determines if information cards are supported by the - /// browser. - /// </summary> - /// <returns> - /// true-if the browser supports information cards. - ///</returns> - var IEVer, embed, x, event; - - IEVer = -1; - if (navigator.appName === 'Microsoft Internet Explorer') { - if (new RegExp("MSIE ([0-9]{1,}[\\.0-9]{0,})").exec(navigator.userAgent) !== null) { - IEVer = parseFloat(RegExp.$1); - } - } - - // Look for IE 7+. - if (IEVer >= 7) { - embed = document.createElement("object"); - embed.type = "application/x-informationcard"; - return embed.issuerPolicy !== undefined && embed.isInstalled; - } - - // not IE (any version) - if (IEVer < 0 && navigator.mimeTypes && navigator.mimeTypes.length) { - // check to see if there is a mimeType handler. - x = navigator.mimeTypes['application/x-informationcard']; - if (x && x.enabledPlugin) { - return true; - } - - // check for the IdentitySelector event handler is there. - if (document.addEventListener) { - event = document.createEvent("Events"); - event.initEvent("IdentitySelectorAvailable", true, true); - top.dispatchEvent(event); - - if (top.IdentitySelectorAvailable === true) { - return true; - } - } - } - - return false; - }, - - activate: function (selectorId, hiddenFieldName) { - var selector, hiddenField; - selector = document.getElementById(selectorId); - hiddenField = document.getElementsByName(hiddenFieldName)[0]; - try { - hiddenField.value = selector.value; - } catch (e) { - // Selector was canceled - return false; - } - if (hiddenField.value == 'undefined') { // really the string, not === undefined - // We're dealing with a bad FireFox selector plugin. - // Just add the control to the form by setting its name property and submit to activate. - selector.name = hiddenFieldName; - hiddenField.parentNode.removeChild(hiddenField); - return true; - } - return true; - }, - - hideStatic: function (divName) { - var div = document.getElementById(divName); - if (div) { - div.style.visibility = 'hidden'; - } - }, - - showStatic: function (divName) { - var div = document.getElementById(divName); - if (div) { - div.style.visibility = 'visible'; - } - }, - - hideDynamic: function (divName) { - var div = document.getElementById(divName); - if (div) { - div.style.display = 'none'; - } - }, - - showDynamic: function (divName) { - var div = document.getElementById(divName); - if (div) { - div.style.display = ''; - } - }, - - checkDynamic: function (controlDiv, unsupportedDiv) { - if (this.isSupported()) { - this.showDynamic(controlDiv); - if (unsupportedDiv) { - this.hideDynamic(unsupportedDiv); - } - } else { - this.hideDynamic(controlDiv); - if (unsupportedDiv) { - this.showDynamic(unsupportedDiv); - } - } - }, - - checkStatic: function (controlDiv, unsupportedDiv) { - if (this.isSupported()) { - this.showStatic(controlDiv); - if (unsupportedDiv) { - this.hideStatic(unsupportedDiv); - } - } else { - this.hideStatic(controlDiv); - if (unsupportedDiv) { - this.showDynamic(unsupportedDiv); - } - } - } -}; diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/TokenProcessingErrorEventArgs.cs b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/TokenProcessingErrorEventArgs.cs deleted file mode 100644 index 104df15..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/TokenProcessingErrorEventArgs.cs +++ /dev/null @@ -1,50 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="TokenProcessingErrorEventArgs.cs" company="Outercurve Foundation"> -// Copyright (c) Outercurve Foundation. All rights reserved. -// </copyright> -//----------------------------------------------------------------------- -namespace DotNetOpenAuth.InfoCard { - using System; - using System.Diagnostics.CodeAnalysis; - using Validation; - - /// <summary> - /// Arguments for the <see cref="InfoCardSelector.TokenProcessingError"/> event. - /// </summary> - public class TokenProcessingErrorEventArgs : EventArgs { - /// <summary> - /// Initializes a new instance of the <see cref="TokenProcessingErrorEventArgs"/> class. - /// </summary> - /// <param name="tokenXml">The token XML.</param> - /// <param name="exception">The exception.</param> - internal TokenProcessingErrorEventArgs(string tokenXml, Exception exception) { - Requires.NotNull(tokenXml, "tokenXml"); - Requires.NotNull(exception, "exception"); - this.TokenXml = tokenXml; - this.Exception = exception; - } - - /// <summary> - /// Gets the raw token XML. - /// </summary> - public string TokenXml { get; private set; } - - /// <summary> - /// Gets the exception that was generated while processing the token. - /// </summary> - public Exception Exception { get; private set; } - -#if CONTRACTS_FULL - /// <summary> - /// Verifies conditions that should be true for any valid state of this object. - /// </summary> - [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Justification = "Called by code contracts.")] - [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Called by code contracts.")] - [ContractInvariantMethod] - private void ObjectInvariant() { - Contract.Invariant(this.TokenXml != null); - Contract.Invariant(this.Exception != null); - } -#endif - } -} diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_114x80.png b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_114x80.png Binary files differdeleted file mode 100644 index 6dba25f..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_114x80.png +++ /dev/null diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_14x10.png b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_14x10.png Binary files differdeleted file mode 100644 index d63575d..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_14x10.png +++ /dev/null diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_214x150.png b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_214x150.png Binary files differdeleted file mode 100644 index 71ebc7e..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_214x150.png +++ /dev/null diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_23x16.png b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_23x16.png Binary files differdeleted file mode 100644 index 9dbea9f..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_23x16.png +++ /dev/null diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_300x210.png b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_300x210.png Binary files differdeleted file mode 100644 index e805b9d..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_300x210.png +++ /dev/null diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_34x24.png b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_34x24.png Binary files differdeleted file mode 100644 index b863f64..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_34x24.png +++ /dev/null diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_365x256.png b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_365x256.png Binary files differdeleted file mode 100644 index 30092c5..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_365x256.png +++ /dev/null diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_41x29.png b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_41x29.png Binary files differdeleted file mode 100644 index d3c71ae..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_41x29.png +++ /dev/null diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_50x35.png b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_50x35.png Binary files differdeleted file mode 100644 index 62ff78b..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_50x35.png +++ /dev/null diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_60x42.png b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_60x42.png Binary files differdeleted file mode 100644 index 8e920c5..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_60x42.png +++ /dev/null diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_71x50.png b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_71x50.png Binary files differdeleted file mode 100644 index 9e8f7fb..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_71x50.png +++ /dev/null diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_81x57.png b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_81x57.png Binary files differdeleted file mode 100644 index 48d62b2..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_81x57.png +++ /dev/null diff --git a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_92x64.png b/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_92x64.png Binary files differdeleted file mode 100644 index 388e497..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/InfoCard/infocard_92x64.png +++ /dev/null diff --git a/src/DotNetOpenAuth.InfoCard.UI/Properties/AssemblyInfo.cs b/src/DotNetOpenAuth.InfoCard.UI/Properties/AssemblyInfo.cs deleted file mode 100644 index 4fb0469..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,45 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="AssemblyInfo.cs" company="Outercurve Foundation"> -// Copyright (c) Outercurve Foundation. All rights reserved. -// </copyright> -//----------------------------------------------------------------------- - -// We DON'T put an AssemblyVersionAttribute in here because it is generated in the build. - -using System; -using System.Net; -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Security; -using System.Security.Permissions; -using System.Web.UI; - -[assembly: TagPrefix("DotNetOpenAuth.InfoCard", "ic")] - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyCopyright("Copyright © 2012 Outercurve Foundation")] -[assembly: CLSCompliant(true)] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("7d73990c-47c0-4256-9f20-a893add9e289")] - -#if StrongNameSigned -// See comment at top of this file. We need this so that strong-naming doesn't -// keep this assembly from being useful to shared host (medium trust) web sites. -[assembly: AllowPartiallyTrustedCallers] - -[assembly: InternalsVisibleTo("DotNetOpenAuth.Test, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] -#else -[assembly: InternalsVisibleTo("DotNetOpenAuth.Test")] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] -#endif diff --git a/src/DotNetOpenAuth.InfoCard.UI/packages.config b/src/DotNetOpenAuth.InfoCard.UI/packages.config deleted file mode 100644 index e3309bc..0000000 --- a/src/DotNetOpenAuth.InfoCard.UI/packages.config +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<packages> - <package id="Validation" version="2.0.2.13022" targetFramework="net45" /> -</packages>
\ No newline at end of file diff --git a/src/DotNetOpenAuth.InfoCard/DotNetOpenAuth.InfoCard.csproj b/src/DotNetOpenAuth.InfoCard/DotNetOpenAuth.InfoCard.csproj deleted file mode 100644 index b4fce7a..0000000 --- a/src/DotNetOpenAuth.InfoCard/DotNetOpenAuth.InfoCard.csproj +++ /dev/null @@ -1,63 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), EnlistmentInfo.props))\EnlistmentInfo.props" Condition=" '$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), EnlistmentInfo.props))' != '' " /> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> - </PropertyGroup> - <Import Project="$(ProjectRoot)tools\DotNetOpenAuth.props" /> - <PropertyGroup> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{408D10B8-34BA-4CBD-B7AA-FEB1907ABA4C}</ProjectGuid> - <AppDesignerFolder>Properties</AppDesignerFolder> - <AssemblyName>DotNetOpenAuth.InfoCard</AssemblyName> - </PropertyGroup> - <Import Project="$(ProjectRoot)tools\DotNetOpenAuth.Product.props" /> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - </PropertyGroup> - <ItemGroup> - <Compile Include="InfoCardErrorUtilities.cs" /> - <Compile Include="InfoCard\InfoCardStrings.Designer.cs"> - <AutoGen>True</AutoGen> - <DesignTime>True</DesignTime> - <DependentUpon>InfoCardStrings.resx</DependentUpon> - </Compile> - <Compile Include="InfoCard\Token\InformationCardException.cs" /> - <Compile Include="InfoCard\Token\Token.cs" /> - <Compile Include="InfoCard\Token\TokenUtility.cs" /> - <Compile Include="InfoCard\Token\TokenDecryptor.cs" /> - <Compile Include="InfoCard\WellKnownIssuers.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="InfoCard\InfoCardStrings.resx"> - <Generator>ResXFileCodeGenerator</Generator> - <LastGenOutput>InfoCardStrings.Designer.cs</LastGenOutput> - </EmbeddedResource> - </ItemGroup> - <ItemGroup> - <EmbeddedResource Include="InfoCard\InfoCardStrings.sr.resx" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\DotNetOpenAuth.Core\DotNetOpenAuth.Core.csproj"> - <Project>{60426312-6AE5-4835-8667-37EDEA670222}</Project> - <Name>DotNetOpenAuth.Core</Name> - </ProjectReference> - </ItemGroup> - <ItemGroup> - <Reference Include="Validation, Version=2.0.0.0, Culture=neutral, PublicKeyToken=2fc06f0d701809a7, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Validation.2.0.2.13022\lib\portable-windows8+net40+sl5+windowsphone8\Validation.dll</HintPath> - </Reference> - </ItemGroup> - <ItemGroup> - <None Include="packages.config" /> - </ItemGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <Import Project="$(ProjectRoot)tools\DotNetOpenAuth.targets" /> - <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), EnlistmentInfo.targets))\EnlistmentInfo.targets" Condition=" '$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), EnlistmentInfo.targets))' != '' " /> - <Import Project="$(SolutionDir)\.nuget\nuget.targets" /> -</Project>
\ No newline at end of file diff --git a/src/DotNetOpenAuth.InfoCard/InfoCard/InfoCardStrings.Designer.cs b/src/DotNetOpenAuth.InfoCard/InfoCard/InfoCardStrings.Designer.cs deleted file mode 100644 index a6d3dcf..0000000 --- a/src/DotNetOpenAuth.InfoCard/InfoCard/InfoCardStrings.Designer.cs +++ /dev/null @@ -1,117 +0,0 @@ -//------------------------------------------------------------------------------ -// <auto-generated> -// This code was generated by a tool. -// Runtime Version:4.0.30104.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// </auto-generated> -//------------------------------------------------------------------------------ - -namespace DotNetOpenAuth.InfoCard { - using System; - - - /// <summary> - /// A strongly-typed resource class, for looking up localized strings, etc. - /// </summary> - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class InfoCardStrings { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal InfoCardStrings() { - } - - /// <summary> - /// Returns the cached ResourceManager instance used by this class. - /// </summary> - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DotNetOpenAuth.InfoCard.InfoCardStrings", typeof(InfoCardStrings).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// <summary> - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// </summary> - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// <summary> - /// Looks up a localized string similar to The token is invalid: The audience restrictions does not match the Relying Party.. - /// </summary> - internal static string AudienceMismatch { - get { - return ResourceManager.GetString("AudienceMismatch", resourceCulture); - } - } - - /// <summary> - /// Looks up a localized string similar to The list of claims requested for inclusion in the InfoCard must be non-empty.. - /// </summary> - internal static string EmptyClaimListNotAllowed { - get { - return ResourceManager.GetString("EmptyClaimListNotAllowed", resourceCulture); - } - } - - /// <summary> - /// Looks up a localized string similar to Failed to find the encryptionAlgorithm.. - /// </summary> - internal static string EncryptionAlgorithmNotFound { - get { - return ResourceManager.GetString("EncryptionAlgorithmNotFound", resourceCulture); - } - } - - /// <summary> - /// Looks up a localized string similar to This operation requires the PPID claim to be included in the InfoCard token.. - /// </summary> - internal static string PpidClaimRequired { - get { - return ResourceManager.GetString("PpidClaimRequired", resourceCulture); - } - } - - /// <summary> - /// Looks up a localized string similar to The PrivacyVersion property must be set whenever the PrivacyUrl property is set.. - /// </summary> - internal static string PrivacyVersionRequiredWithPrivacyUrl { - get { - return ResourceManager.GetString("PrivacyVersionRequiredWithPrivacyUrl", resourceCulture); - } - } - - /// <summary> - /// Looks up a localized string similar to Click here to select your Information Card.. - /// </summary> - internal static string SelectorClickPrompt { - get { - return ResourceManager.GetString("SelectorClickPrompt", resourceCulture); - } - } - } -} diff --git a/src/DotNetOpenAuth.InfoCard/InfoCard/InfoCardStrings.resx b/src/DotNetOpenAuth.InfoCard/InfoCard/InfoCardStrings.resx deleted file mode 100644 index 956b321..0000000 --- a/src/DotNetOpenAuth.InfoCard/InfoCard/InfoCardStrings.resx +++ /dev/null @@ -1,138 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<root> - <!-- - Microsoft ResX Schema - - Version 2.0 - - The primary goals of this format is to allow a simple XML format - that is mostly human readable. The generation and parsing of the - various data types are done through the TypeConverter classes - associated with the data types. - - Example: - - ... ado.net/XML headers & schema ... - <resheader name="resmimetype">text/microsoft-resx</resheader> - <resheader name="version">2.0</resheader> - <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> - <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> - <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> - <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> - <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> - <value>[base64 mime encoded serialized .NET Framework object]</value> - </data> - <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> - <comment>This is a comment</comment> - </data> - - There are any number of "resheader" rows that contain simple - name/value pairs. - - Each data row contains a name, and value. The row also contains a - type or mimetype. Type corresponds to a .NET class that support - text/value conversion through the TypeConverter architecture. - Classes that don't support this are serialized and stored with the - mimetype set. - - The mimetype is used for serialized objects, and tells the - ResXResourceReader how to depersist the object. This is currently not - extensible. For a given mimetype the value must be set accordingly: - - Note - application/x-microsoft.net.object.binary.base64 is the format - that the ResXResourceWriter will generate, however the reader can - read any of the formats listed below. - - mimetype: application/x-microsoft.net.object.binary.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.soap.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Soap.SoapFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.bytearray.base64 - value : The object must be serialized into a byte array - : using a System.ComponentModel.TypeConverter - : and then encoded with base64 encoding. - --> - <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> - <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> - <xsd:element name="root" msdata:IsDataSet="true"> - <xsd:complexType> - <xsd:choice maxOccurs="unbounded"> - <xsd:element name="metadata"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" /> - </xsd:sequence> - <xsd:attribute name="name" use="required" type="xsd:string" /> - <xsd:attribute name="type" type="xsd:string" /> - <xsd:attribute name="mimetype" type="xsd:string" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="assembly"> - <xsd:complexType> - <xsd:attribute name="alias" type="xsd:string" /> - <xsd:attribute name="name" type="xsd:string" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="data"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> - <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> - <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="resheader"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" /> - </xsd:complexType> - </xsd:element> - </xsd:choice> - </xsd:complexType> - </xsd:element> - </xsd:schema> - <resheader name="resmimetype"> - <value>text/microsoft-resx</value> - </resheader> - <resheader name="version"> - <value>2.0</value> - </resheader> - <resheader name="reader"> - <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <resheader name="writer"> - <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <data name="AudienceMismatch" xml:space="preserve"> - <value>The token is invalid: The audience restrictions does not match the Relying Party.</value> - </data> - <data name="EmptyClaimListNotAllowed" xml:space="preserve"> - <value>The list of claims requested for inclusion in the InfoCard must be non-empty.</value> - </data> - <data name="EncryptionAlgorithmNotFound" xml:space="preserve"> - <value>Failed to find the encryptionAlgorithm.</value> - </data> - <data name="PpidClaimRequired" xml:space="preserve"> - <value>This operation requires the PPID claim to be included in the InfoCard token.</value> - </data> - <data name="PrivacyVersionRequiredWithPrivacyUrl" xml:space="preserve"> - <value>The PrivacyVersion property must be set whenever the PrivacyUrl property is set.</value> - </data> - <data name="SelectorClickPrompt" xml:space="preserve"> - <value>Click here to select your Information Card.</value> - </data> -</root>
\ No newline at end of file diff --git a/src/DotNetOpenAuth.InfoCard/InfoCard/InfoCardStrings.sr.resx b/src/DotNetOpenAuth.InfoCard/InfoCard/InfoCardStrings.sr.resx deleted file mode 100644 index 9df0429..0000000 --- a/src/DotNetOpenAuth.InfoCard/InfoCard/InfoCardStrings.sr.resx +++ /dev/null @@ -1,135 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<root> - <!-- - Microsoft ResX Schema - - Version 2.0 - - The primary goals of this format is to allow a simple XML format - that is mostly human readable. The generation and parsing of the - various data types are done through the TypeConverter classes - associated with the data types. - - Example: - - ... ado.net/XML headers & schema ... - <resheader name="resmimetype">text/microsoft-resx</resheader> - <resheader name="version">2.0</resheader> - <resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader> - <resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader> - <data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data> - <data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data> - <data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64"> - <value>[base64 mime encoded serialized .NET Framework object]</value> - </data> - <data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> - <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value> - <comment>This is a comment</comment> - </data> - - There are any number of "resheader" rows that contain simple - name/value pairs. - - Each data row contains a name, and value. The row also contains a - type or mimetype. Type corresponds to a .NET class that support - text/value conversion through the TypeConverter architecture. - Classes that don't support this are serialized and stored with the - mimetype set. - - The mimetype is used for serialized objects, and tells the - ResXResourceReader how to depersist the object. This is currently not - extensible. For a given mimetype the value must be set accordingly: - - Note - application/x-microsoft.net.object.binary.base64 is the format - that the ResXResourceWriter will generate, however the reader can - read any of the formats listed below. - - mimetype: application/x-microsoft.net.object.binary.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.soap.base64 - value : The object must be serialized with - : System.Runtime.Serialization.Formatters.Soap.SoapFormatter - : and then encoded with base64 encoding. - - mimetype: application/x-microsoft.net.object.bytearray.base64 - value : The object must be serialized into a byte array - : using a System.ComponentModel.TypeConverter - : and then encoded with base64 encoding. - --> - <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> - <xsd:import namespace="http://www.w3.org/XML/1998/namespace" /> - <xsd:element name="root" msdata:IsDataSet="true"> - <xsd:complexType> - <xsd:choice maxOccurs="unbounded"> - <xsd:element name="metadata"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" /> - </xsd:sequence> - <xsd:attribute name="name" use="required" type="xsd:string" /> - <xsd:attribute name="type" type="xsd:string" /> - <xsd:attribute name="mimetype" type="xsd:string" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="assembly"> - <xsd:complexType> - <xsd:attribute name="alias" type="xsd:string" /> - <xsd:attribute name="name" type="xsd:string" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="data"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" /> - <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" /> - <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" /> - <xsd:attribute ref="xml:space" /> - </xsd:complexType> - </xsd:element> - <xsd:element name="resheader"> - <xsd:complexType> - <xsd:sequence> - <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" /> - </xsd:sequence> - <xsd:attribute name="name" type="xsd:string" use="required" /> - </xsd:complexType> - </xsd:element> - </xsd:choice> - </xsd:complexType> - </xsd:element> - </xsd:schema> - <resheader name="resmimetype"> - <value>text/microsoft-resx</value> - </resheader> - <resheader name="version"> - <value>2.0</value> - </resheader> - <resheader name="reader"> - <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <resheader name="writer"> - <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value> - </resheader> - <data name="AudienceMismatch" xml:space="preserve"> - <value>Token je neispravan: restrikcije u prijemu se ne slažu sa Relying Party.</value> - </data> - <data name="EmptyClaimListNotAllowed" xml:space="preserve"> - <value>Tražena lista zahteva za uključivanje u InfoCard ne sme biti prazna.</value> - </data> - <data name="EncryptionAlgorithmNotFound" xml:space="preserve"> - <value>encryptionAlgorithm nije pronađen.</value> - </data> - <data name="PpidClaimRequired" xml:space="preserve"> - <value>Ova operacija zahteva da PPID zahtev bude uključen u InfoCard token.</value> - </data> - <data name="SelectorClickPrompt" xml:space="preserve"> - <value>Kliknite ovde da odaberete vaš Information Card.</value> - </data> -</root>
\ No newline at end of file diff --git a/src/DotNetOpenAuth.InfoCard/InfoCard/Token/InformationCardException.cs b/src/DotNetOpenAuth.InfoCard/InfoCard/Token/InformationCardException.cs deleted file mode 100644 index d718964..0000000 --- a/src/DotNetOpenAuth.InfoCard/InfoCard/Token/InformationCardException.cs +++ /dev/null @@ -1,62 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="InformationCardException.cs" company="Outercurve Foundation"> -// Copyright (c) Outercurve Foundation. All rights reserved. -// </copyright> -//----------------------------------------------------------------------- - -namespace DotNetOpenAuth.InfoCard { - using System; - using System.Runtime.Serialization; - using DotNetOpenAuth.Messaging; - - /// <summary> - /// An exception class for Information Cards. - /// </summary> - [Serializable] - public class InformationCardException : ProtocolException { - /// <summary> - /// Initializes a new instance of the <see cref="InformationCardException"/> class. - /// </summary> - public InformationCardException() { - } - - /// <summary> - /// Initializes a new instance of the <see cref="InformationCardException"/> class with a specified - /// error message. - /// </summary> - /// <param name="message">The error message.</param> - public InformationCardException(string message) - : base(message) { - } - - /// <summary> - /// Initializes a new instance of the <see cref="InformationCardException"/> class - /// with a specified error message and a reference to the inner exception that is - /// the cause of this exception. - /// </summary> - /// <param name="message">The error message that explains the reason for the exception.</param> - /// <param name="innerException"> - /// The exception that is the cause of the current exception, or a null reference - /// (Nothing in Visual Basic) if no inner exception is specified. - /// </param> - public InformationCardException(string message, Exception innerException) - : base(message, innerException) { - } - - /// <summary> - /// Initializes a new instance of the <see cref="InformationCardException"/> class - /// with serialized data. - /// </summary> - /// <param name="info">The <see cref="T:System.Runtime.Serialization.SerializationInfo"/> that holds the serialized object data about the exception being thrown.</param> - /// <param name="context">The <see cref="T:System.Runtime.Serialization.StreamingContext"/> that contains contextual information about the source or destination.</param> - /// <exception cref="T:System.ArgumentNullException"> - /// The <paramref name="info"/> parameter is null. - /// </exception> - /// <exception cref="T:System.Runtime.Serialization.SerializationException"> - /// The class name is null or <see cref="P:System.Exception.HResult"/> is zero (0). - /// </exception> - protected InformationCardException(SerializationInfo info, StreamingContext context) - : base(info, context) { - } - } -}
\ No newline at end of file diff --git a/src/DotNetOpenAuth.InfoCard/InfoCard/Token/Token.cs b/src/DotNetOpenAuth.InfoCard/InfoCard/Token/Token.cs deleted file mode 100644 index 2ac1788..0000000 --- a/src/DotNetOpenAuth.InfoCard/InfoCard/Token/Token.cs +++ /dev/null @@ -1,269 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="Token.cs" company="Outercurve Foundation, Microsoft Corporation"> -// Copyright (c) Outercurve Foundation, Microsoft Corporation. All rights reserved. -// </copyright> -//----------------------------------------------------------------------- - -namespace DotNetOpenAuth.InfoCard { - using System; - using System.Collections.Generic; - using System.Diagnostics.CodeAnalysis; - using System.Diagnostics.Contracts; - using System.IdentityModel.Claims; - using System.IdentityModel.Policy; - using System.IdentityModel.Tokens; - using System.IO; - using System.Linq; - using System.Text; - using System.Xml; - using System.Xml.XPath; - using DotNetOpenAuth.Messaging; - using Validation; - - /// <summary> - /// The decrypted token that was submitted as an Information Card. - /// </summary> - public class Token { - /// <summary> - /// Backing field for the <see cref="Claims"/> property. - /// </summary> - private IDictionary<string, string> claims; - - /// <summary> - /// Backing field for the <see cref="UniqueId"/> property. - /// </summary> - private string uniqueId; - - /// <summary> - /// Initializes a new instance of the <see cref="Token"/> class. - /// </summary> - /// <param name="tokenXml">Xml token, which may be encrypted.</param> - /// <param name="audience">The audience. May be <c>null</c> to avoid audience checking.</param> - /// <param name="decryptor">The decryptor to use to decrypt the token, if necessary..</param> - /// <exception cref="InformationCardException">Thrown for any problem decoding or decrypting the token.</exception> - [SuppressMessage("Microsoft.Usage", "CA2202:Do not dispose objects multiple times", Justification = "Not a problem for this type."), SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification = "False positive")] - private Token(string tokenXml, Uri audience, TokenDecryptor decryptor) { - Requires.NotNullOrEmpty(tokenXml, "tokenXml"); - Requires.That(decryptor != null || !IsEncrypted(tokenXml), "decryptor", "Required when tokenXml is encrypted."); - - byte[] decryptedBytes; - string decryptedString; - - using (StringReader xmlReader = new StringReader(tokenXml)) { - var readerSettings = MessagingUtilities.CreateUntrustedXmlReaderSettings(); - using (XmlReader tokenReader = XmlReader.Create(xmlReader, readerSettings)) { - Assumes.True(tokenReader != null); // BCL contract should say XmlReader.Create result != null - if (IsEncrypted(tokenReader)) { - Logger.InfoCard.DebugFormat("Incoming SAML token, before decryption: {0}", tokenXml); - decryptedBytes = decryptor.DecryptToken(tokenReader); - decryptedString = Encoding.UTF8.GetString(decryptedBytes); - Assumes.True(decryptedString != null); // BCL contracts should be enhanced here - } else { - decryptedBytes = Encoding.UTF8.GetBytes(tokenXml); - decryptedString = tokenXml; - } - } - } - - var stringReader = new StringReader(decryptedString); - try { - this.Xml = new XPathDocument(stringReader).CreateNavigator(); - } catch { - stringReader.Dispose(); - throw; - } - - Logger.InfoCard.DebugFormat("Incoming SAML token, after any decryption: {0}", this.Xml.InnerXml); - this.AuthorizationContext = TokenUtility.AuthenticateToken(this.Xml.ReadSubtree(), audience); - } - - /// <summary> - /// Gets the AuthorizationContext behind this token. - /// </summary> - public AuthorizationContext AuthorizationContext { get; private set; } - - /// <summary> - /// Gets the the decrypted token XML. - /// </summary> - public XPathNavigator Xml { get; private set; } - - /// <summary> - /// Gets the UniqueID of this token, usable as a stable username that the user - /// has already verified belongs to him/her. - /// </summary> - /// <remarks> - /// By default, this uses the PPID and the Issuer's Public Key and hashes them - /// together to generate a UniqueID. - /// </remarks> - public string UniqueId { - get { - if (string.IsNullOrEmpty(this.uniqueId)) { - this.uniqueId = TokenUtility.GetUniqueName(this.AuthorizationContext); - } - - return this.uniqueId; - } - } - - /// <summary> - /// Gets the hash of the card issuer's public key. - /// </summary> - public string IssuerPubKeyHash { - get { return TokenUtility.GetIssuerPubKeyHash(this.AuthorizationContext); } - } - - /// <summary> - /// Gets the Site Specific ID that the user sees in the Identity Selector. - /// </summary> - public string SiteSpecificId { - get { - RequiresEx.ValidState(this.Claims.ContainsKey(ClaimTypes.PPID) && !string.IsNullOrEmpty(this.Claims[ClaimTypes.PPID])); - string ppidValue; - ErrorUtilities.VerifyOperation(this.Claims.TryGetValue(ClaimTypes.PPID, out ppidValue) && ppidValue != null, InfoCardStrings.PpidClaimRequired); - return TokenUtility.CalculateSiteSpecificID(ppidValue); - } - } - - /// <summary> - /// Gets the claims in all the claimsets as a dictionary of strings. - /// </summary> - public IDictionary<string, string> Claims { - get { - if (this.claims == null) { - this.claims = this.GetFlattenedClaims(); - } - - return this.claims; - } - } - - /// <summary> - /// Deserializes an XML document into a token. - /// </summary> - /// <param name="tokenXml">The token XML.</param> - /// <returns>The deserialized token.</returns> - public static Token Read(string tokenXml) { - Requires.NotNullOrEmpty(tokenXml, "tokenXml"); - return Read(tokenXml, (Uri)null); - } - - /// <summary> - /// Deserializes an XML document into a token. - /// </summary> - /// <param name="tokenXml">The token XML.</param> - /// <param name="audience">The URI that this token must have been crafted to be sent to. Use <c>null</c> to accept any intended audience.</param> - /// <returns>The deserialized token.</returns> - public static Token Read(string tokenXml, Uri audience) { - Requires.NotNullOrEmpty(tokenXml, "tokenXml"); - return Read(tokenXml, audience, Enumerable.Empty<SecurityToken>()); - } - - /// <summary> - /// Deserializes an XML document into a token. - /// </summary> - /// <param name="tokenXml">The token XML.</param> - /// <param name="decryptionTokens">Any X.509 certificates that may be used to decrypt the token, if necessary.</param> - /// <returns>The deserialized token.</returns> - public static Token Read(string tokenXml, IEnumerable<SecurityToken> decryptionTokens) { - Requires.NotNullOrEmpty(tokenXml, "tokenXml"); - Requires.NotNull(decryptionTokens, "decryptionTokens"); - return Read(tokenXml, null, decryptionTokens); - } - - /// <summary> - /// Deserializes an XML document into a token. - /// </summary> - /// <param name="tokenXml">The token XML.</param> - /// <param name="audience">The URI that this token must have been crafted to be sent to. Use <c>null</c> to accept any intended audience.</param> - /// <param name="decryptionTokens">Any X.509 certificates that may be used to decrypt the token, if necessary.</param> - /// <returns>The deserialized token.</returns> - public static Token Read(string tokenXml, Uri audience, IEnumerable<SecurityToken> decryptionTokens) { - Requires.NotNullOrEmpty(tokenXml, "tokenXml"); - Requires.NotNull(decryptionTokens, "decryptionTokens"); - - TokenDecryptor decryptor = null; - - if (IsEncrypted(tokenXml)) { - decryptor = new TokenDecryptor(); - decryptor.Tokens.AddRange(decryptionTokens); - } - - return new Token(tokenXml, audience, decryptor); - } - - /// <summary> - /// Determines whether the specified token XML is encrypted. - /// </summary> - /// <param name="tokenXml">The token XML.</param> - /// <returns> - /// <c>true</c> if the specified token XML is encrypted; otherwise, <c>false</c>. - /// </returns> - [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification = "False positive"), Pure] - internal static bool IsEncrypted(string tokenXml) { - Requires.NotNull(tokenXml, "tokenXml"); - - var stringReader = new StringReader(tokenXml); - XmlReader tokenReader; - try { - var readerSettings = MessagingUtilities.CreateUntrustedXmlReaderSettings(); - tokenReader = XmlReader.Create(stringReader, readerSettings); - } catch { - stringReader.Dispose(); - throw; - } - - try { - Assumes.True(tokenReader != null); // CC missing for XmlReader.Create - return IsEncrypted(tokenReader); - } catch { - IDisposable disposableReader = tokenReader; - disposableReader.Dispose(); - throw; - } - } - - /// <summary> - /// Determines whether the specified token XML is encrypted. - /// </summary> - /// <param name="tokenXmlReader">The token XML.</param> - /// <returns> - /// <c>true</c> if the specified token XML is encrypted; otherwise, <c>false</c>. - /// </returns> - private static bool IsEncrypted(XmlReader tokenXmlReader) { - Requires.NotNull(tokenXmlReader, "tokenXmlReader"); - return tokenXmlReader.IsStartElement(TokenDecryptor.XmlEncryptionStrings.EncryptedData, TokenDecryptor.XmlEncryptionStrings.Namespace); - } - -#if CONTRACTS_FULL - /// <summary> - /// Verifies conditions that should be true for any valid state of this object. - /// </summary> - [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Justification = "Called by code contracts.")] - [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Called by code contracts.")] - [ContractInvariantMethod] - private void ObjectInvariant() { - Contract.Invariant(this.AuthorizationContext != null); - } -#endif - - /// <summary> - /// Flattens the claims into a dictionary - /// </summary> - /// <returns>A dictionary of claim type URIs and claim values.</returns> - [SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Justification = "Expensive call.")] - [Pure] - private IDictionary<string, string> GetFlattenedClaims() { - var flattenedClaims = new Dictionary<string, string>(); - - foreach (ClaimSet set in this.AuthorizationContext.ClaimSets) { - foreach (Claim claim in set) { - if (claim.Right == Rights.PossessProperty) { - flattenedClaims.Add(claim.ClaimType, TokenUtility.GetResourceValue(claim)); - } - } - } - - return flattenedClaims; - } - } -} diff --git a/src/DotNetOpenAuth.InfoCard/InfoCard/Token/TokenDecryptor.cs b/src/DotNetOpenAuth.InfoCard/InfoCard/Token/TokenDecryptor.cs deleted file mode 100644 index fab5148..0000000 --- a/src/DotNetOpenAuth.InfoCard/InfoCard/Token/TokenDecryptor.cs +++ /dev/null @@ -1,209 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="TokenDecryptor.cs" company="Microsoft Corporation"> -// Copyright (c) Microsoft Corporation. All rights reserved. -// </copyright> -// <license> -// Microsoft Public License (Ms-PL). -// See http://www.microsoft.com/opensource/licenses.mspx#Ms-PL -// </license> -// <author>This file was subsequently modified by Andrew Arnott.</author> -//----------------------------------------------------------------------- - -namespace DotNetOpenAuth.InfoCard { - using System; - using System.Collections.Generic; - using System.Diagnostics.CodeAnalysis; - using System.IdentityModel.Selectors; - using System.IdentityModel.Tokens; - using System.Linq; - using System.Security.Cryptography; - using System.Security.Cryptography.X509Certificates; - using System.ServiceModel.Security; - using System.Xml; - using DotNetOpenAuth.Messaging; - using Validation; - - /// <summary> - /// A utility class for decrypting InfoCard tokens. - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Decryptor", Justification = "By design")] - internal class TokenDecryptor { - /// <summary> - /// Backing field for the <see cref="Tokens"/> property. - /// </summary> - private List<SecurityToken> tokens; - - /// <summary> - /// Initializes a new instance of the <see cref="TokenDecryptor"/> class. - /// </summary> - internal TokenDecryptor() { - this.tokens = new List<SecurityToken>(); - StoreName storeName = StoreName.My; - StoreLocation storeLocation = StoreLocation.LocalMachine; - this.AddDecryptionCertificates(storeName, storeLocation); - } - - /// <summary> - /// Gets a list of possible decryption certificates, from the store/location set - /// </summary> - /// <remarks> - /// Defaults to localmachine:my (same place SSL certs are) - /// </remarks> - internal List<SecurityToken> Tokens { - get { return this.tokens; } - } - - /// <summary> - /// Adds a certificate to the list of certificates to decrypt with. - /// </summary> - /// <param name="certificate">The x509 cert to use for decryption</param> - internal void AddDecryptionCertificate(X509Certificate2 certificate) { - this.Tokens.Add(new X509SecurityToken(certificate)); - } - - /// <summary> - /// Adds a certificate to the list of certificates to decrypt with. - /// </summary> - /// <param name="storeName">store name of the certificate</param> - /// <param name="storeLocation">store location</param> - /// <param name="thumbprint">thumbprint of the cert to use</param> - internal void AddDecryptionCertificate(StoreName storeName, StoreLocation storeLocation, string thumbprint) { - this.AddDecryptionCertificates( - storeName, - storeLocation, - store => store.Find(X509FindType.FindByThumbprint, thumbprint, true)); - } - - /// <summary> - /// Adds a store of certificates to the list of certificates to decrypt with. - /// </summary> - /// <param name="storeName">store name of the certificates</param> - /// <param name="storeLocation">store location</param> - internal void AddDecryptionCertificates(StoreName storeName, StoreLocation storeLocation) { - this.AddDecryptionCertificates(storeName, storeLocation, store => store); - } - - /// <summary> - /// Decrpyts a security token from an XML EncryptedData - /// </summary> - /// <param name="reader">The encrypted token XML reader.</param> - /// <returns>A byte array of the contents of the encrypted token</returns> - internal byte[] DecryptToken(XmlReader reader) { - Requires.NotNull(reader, "reader"); - - byte[] securityTokenData; - string encryptionAlgorithm; - SecurityKeyIdentifier keyIdentifier; - bool isEmptyElement; - - ErrorUtilities.VerifyInternal(reader.IsStartElement(XmlEncryptionStrings.EncryptedData, XmlEncryptionStrings.Namespace), "Expected encrypted token starting XML element was not found."); - reader.Read(); // get started - - // if it's not an encryption method, something is dreadfully wrong. - InfoCardErrorUtilities.VerifyInfoCard(reader.IsStartElement(XmlEncryptionStrings.EncryptionMethod, XmlEncryptionStrings.Namespace), InfoCardStrings.EncryptionAlgorithmNotFound); - - // Looks good, let's grab the alg. - isEmptyElement = reader.IsEmptyElement; - encryptionAlgorithm = reader.GetAttribute(XmlEncryptionStrings.Algorithm); - reader.Read(); - - if (!isEmptyElement) { - while (reader.IsStartElement()) { - reader.Skip(); - } - reader.ReadEndElement(); - } - - // get the key identifier - keyIdentifier = WSSecurityTokenSerializer.DefaultInstance.ReadKeyIdentifier(reader); - - // resolve the symmetric key - SymmetricSecurityKey decryptingKey = (SymmetricSecurityKey)SecurityTokenResolver.CreateDefaultSecurityTokenResolver(this.tokens.AsReadOnly(), false).ResolveSecurityKey(keyIdentifier[0]); - SymmetricAlgorithm algorithm = decryptingKey.GetSymmetricAlgorithm(encryptionAlgorithm); - - // dig for the security token data itself. - reader.ReadStartElement(XmlEncryptionStrings.CipherData, XmlEncryptionStrings.Namespace); - reader.ReadStartElement(XmlEncryptionStrings.CipherValue, XmlEncryptionStrings.Namespace); - securityTokenData = Convert.FromBase64String(reader.ReadString()); - reader.ReadEndElement(); // CipherValue - reader.ReadEndElement(); // CipherData - reader.ReadEndElement(); // EncryptedData - - // decrypto-magic! - int blockSizeBytes = algorithm.BlockSize / 8; - byte[] iv = new byte[blockSizeBytes]; - Buffer.BlockCopy(securityTokenData, 0, iv, 0, iv.Length); - algorithm.Padding = PaddingMode.ISO10126; - algorithm.Mode = CipherMode.CBC; - ICryptoTransform decrTransform = algorithm.CreateDecryptor(algorithm.Key, iv); - byte[] plainText = decrTransform.TransformFinalBlock(securityTokenData, iv.Length, securityTokenData.Length - iv.Length); - decrTransform.Dispose(); - - return plainText; - } - -#if CONTRACTS_FULL - /// <summary> - /// Verifies conditions that should be true for any valid state of this object. - /// </summary> - [SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Justification = "Called by code contracts.")] - [SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Justification = "Called by code contracts.")] - [ContractInvariantMethod] - private void ObjectInvariant() { - Contract.Invariant(this.Tokens != null); - } -#endif - - /// <summary> - /// Adds a store of certificates to the list of certificates to decrypt with. - /// </summary> - /// <param name="storeName">store name of the certificates</param> - /// <param name="storeLocation">store location</param> - /// <param name="filter">A filter to on the certificates to add.</param> - private void AddDecryptionCertificates(StoreName storeName, StoreLocation storeLocation, Func<X509Certificate2Collection, X509Certificate2Collection> filter) { - X509Store store = new X509Store(storeName, storeLocation); - store.Open(OpenFlags.ReadOnly); - - this.tokens.AddRange((from cert in filter(store.Certificates).Cast<X509Certificate2>() - where cert.HasPrivateKey - select new X509SecurityToken(cert)).Cast<SecurityToken>()); - - store.Close(); - } - - /// <summary> - /// A set of strings used in parsing the XML token. - /// </summary> - internal static class XmlEncryptionStrings { - /// <summary> - /// The "http://www.w3.org/2001/04/xmlenc#" value. - /// </summary> - internal const string Namespace = "http://www.w3.org/2001/04/xmlenc#"; - - /// <summary> - /// The "EncryptionMethod" value. - /// </summary> - internal const string EncryptionMethod = "EncryptionMethod"; - - /// <summary> - /// The "CipherValue" value. - /// </summary> - internal const string CipherValue = "CipherValue"; - - /// <summary> - /// The "Algorithm" value. - /// </summary> - internal const string Algorithm = "Algorithm"; - - /// <summary> - /// The "EncryptedData" value. - /// </summary> - internal const string EncryptedData = "EncryptedData"; - - /// <summary> - /// The "CipherData" value. - /// </summary> - internal const string CipherData = "CipherData"; - } - } -}
\ No newline at end of file diff --git a/src/DotNetOpenAuth.InfoCard/InfoCard/Token/TokenUtility.cs b/src/DotNetOpenAuth.InfoCard/InfoCard/Token/TokenUtility.cs deleted file mode 100644 index 616cb9f..0000000 --- a/src/DotNetOpenAuth.InfoCard/InfoCard/Token/TokenUtility.cs +++ /dev/null @@ -1,302 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="TokenUtility.cs" company="Microsoft Corporation"> -// Copyright (c) Microsoft Corporation. All rights reserved. -// </copyright> -// <license> -// Microsoft Public License (Ms-PL). -// See http://www.microsoft.com/opensource/licenses.mspx#Ms-PL -// </license> -//----------------------------------------------------------------------- - -namespace DotNetOpenAuth.InfoCard { - using System; - using System.Collections.Generic; - using System.Configuration; - using System.Diagnostics.CodeAnalysis; - using System.IdentityModel.Claims; - using System.IdentityModel.Policy; - using System.IdentityModel.Selectors; - using System.IdentityModel.Tokens; - using System.IO; - using System.Linq; - using System.Net.Mail; - using System.Security.Cryptography; - using System.Security.Principal; - using System.ServiceModel.Security; - using System.Text; - using System.Xml; - using DotNetOpenAuth.Messaging; - using Validation; - - /// <summary> - /// Tools for reading InfoCard tokens. - /// </summary> - internal static class TokenUtility { - /// <summary> - /// Gets the maximum amount the token can be out of sync with time. - /// </summary> - internal static TimeSpan MaximumClockSkew { - get { return DotNetOpenAuth.Configuration.DotNetOpenAuthSection.Messaging.MaximumClockSkew; } - } - - /// <summary> - /// Token Authentication. Translates the decrypted data into a AuthContext. - /// </summary> - /// <param name="reader">The token XML reader.</param> - /// <param name="audience">The audience that the token must be scoped for. - /// Use <c>null</c> to indicate any audience is acceptable.</param> - /// <returns> - /// The authorization context carried by the token. - /// </returns> - internal static AuthorizationContext AuthenticateToken(XmlReader reader, Uri audience) { - // Extensibility Point: - // in order to accept different token types, you would need to add additional - // code to create an authenticationcontext from the security token. - // This code only supports SamlSecurityToken objects. - SamlSecurityToken token = WSSecurityTokenSerializer.DefaultInstance.ReadToken(reader, null) as SamlSecurityToken; - - if (null == token) { - throw new InformationCardException("Unable to read security token"); - } - - if (null != token.SecurityKeys && token.SecurityKeys.Count > 0) { - throw new InformationCardException("Token Security Keys Exist"); - } - - if (audience == null) { - Logger.InfoCard.Warn("SAML token Audience checking will be skipped."); - } else { - if (token.Assertion.Conditions != null && - token.Assertion.Conditions.Conditions != null) { - foreach (SamlCondition condition in token.Assertion.Conditions.Conditions) { - SamlAudienceRestrictionCondition audienceCondition = condition as SamlAudienceRestrictionCondition; - - if (audienceCondition != null) { - Logger.InfoCard.DebugFormat("SAML token audience(s): {0}", audienceCondition.Audiences.ToStringDeferred()); - bool match = audienceCondition.Audiences.Contains(audience); - - if (!match && Logger.InfoCard.IsErrorEnabled) { - Logger.InfoCard.ErrorFormat("Expected SAML token audience of {0} but found {1}.", audience.AbsoluteUri, audienceCondition.Audiences.Select(aud => aud.AbsoluteUri).ToStringDeferred()); - } - - // The token is invalid if any condition is not valid. - // An audience restriction condition is valid if any audience - // matches the Relying Party. - InfoCardErrorUtilities.VerifyInfoCard(match, InfoCardStrings.AudienceMismatch); - } - } - } - } - var samlAuthenticator = new SamlSecurityTokenAuthenticator( - new List<SecurityTokenAuthenticator>( - new SecurityTokenAuthenticator[] { - new RsaSecurityTokenAuthenticator(), - new X509SecurityTokenAuthenticator(), - }), - MaximumClockSkew); - - if (audience != null) { - samlAuthenticator.AllowedAudienceUris.Add(audience.AbsoluteUri); - } - - return AuthorizationContext.CreateDefaultAuthorizationContext(samlAuthenticator.ValidateToken(token)); - } - - /// <summary> - /// Translates claims to strings - /// </summary> - /// <param name="claim">Claim to translate to a string</param> - /// <returns>The string representation of a claim's value.</returns> - [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification = "False positive.")] - internal static string GetResourceValue(Claim claim) { - string strClaim = claim.Resource as string; - if (!string.IsNullOrEmpty(strClaim)) { - return strClaim; - } - - IdentityReference reference = claim.Resource as IdentityReference; - if (null != reference) { - return reference.Value; - } - - ICspAsymmetricAlgorithm rsa = claim.Resource as ICspAsymmetricAlgorithm; - if (null != rsa) { - using (SHA256 sha = SHA256.Create()) { - return Convert.ToBase64String(sha.ComputeHash(rsa.ExportCspBlob(false))); - } - } - - MailAddress mail = claim.Resource as MailAddress; - if (null != mail) { - return mail.ToString(); - } - - byte[] bufferValue = claim.Resource as byte[]; - if (null != bufferValue) { - return Convert.ToBase64String(bufferValue); - } - - return claim.Resource.ToString(); - } - - /// <summary> - /// Generates a UniqueID based off the Issuer's key - /// </summary> - /// <param name="authzContext">the Authorization Context</param> - /// <returns>the hash of the internal key of the issuer</returns> - internal static string GetIssuerPubKeyHash(AuthorizationContext authzContext) { - foreach (ClaimSet cs in authzContext.ClaimSets) { - Claim currentIssuerClaim = GetUniqueRsaClaim(cs.Issuer); - - if (currentIssuerClaim != null) { - RSA rsa = currentIssuerClaim.Resource as RSA; - if (null == rsa) { - return null; - } - - return ComputeCombinedId(rsa, string.Empty); - } - } - - return null; - } - - /// <summary> - /// Generates a UniqueID based off the Issuer's key and the PPID. - /// </summary> - /// <param name="authzContext">The Authorization Context</param> - /// <returns>A unique ID for this user at this web site.</returns> - internal static string GetUniqueName(AuthorizationContext authzContext) { - Requires.NotNull(authzContext, "authzContext"); - - Claim uniqueIssuerClaim = null; - Claim uniqueUserClaim = null; - - foreach (ClaimSet cs in authzContext.ClaimSets) { - Claim currentIssuerClaim = GetUniqueRsaClaim(cs.Issuer); - - foreach (Claim c in cs.FindClaims(ClaimTypes.PPID, Rights.PossessProperty)) { - if (null == currentIssuerClaim) { - // Found a claim in a ClaimSet with no RSA issuer. - return null; - } - - if (null == uniqueUserClaim) { - uniqueUserClaim = c; - uniqueIssuerClaim = currentIssuerClaim; - } else if (!uniqueIssuerClaim.Equals(currentIssuerClaim)) { - // Found two of the desired claims with different - // issuers. No unique name. - return null; - } else if (!uniqueUserClaim.Equals(c)) { - // Found two of the desired claims with different - // values. No unique name. - return null; - } - } - } - - // No claim of the desired type was found - if (null == uniqueUserClaim) { - return null; - } - - // Unexpected resource type - string claimValue = uniqueUserClaim.Resource as string; - if (null == claimValue) { - return null; - } - - // Unexpected resource type for RSA - RSA rsa = uniqueIssuerClaim.Resource as RSA; - if (null == rsa) { - return null; - } - - return ComputeCombinedId(rsa, claimValue); - } - - /// <summary> - /// Generates the Site Specific ID to match the one in the Identity Selector. - /// </summary> - /// <value>The ID displayed by the Identity Selector.</value> - /// <param name="ppid">The personal private identifier.</param> - /// <returns>A string containing the XXX-XXXX-XXX cosmetic value.</returns> - [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification = "False positive.")] - internal static string CalculateSiteSpecificID(string ppid) { - Requires.NotNull(ppid, "ppid"); - - int callSignChars = 10; - char[] charMap = "QL23456789ABCDEFGHJKMNPRSTUVWXYZ".ToCharArray(); - int charMapLength = charMap.Length; - - byte[] raw = Convert.FromBase64String(ppid); - using (HashAlgorithm hasher = SHA1.Create()) { - raw = hasher.ComputeHash(raw); - } - - StringBuilder callSign = new StringBuilder(); - - for (int i = 0; i < callSignChars; i++) { - // after char 3 and char 7, place a dash - if (i == 3 || i == 7) { - callSign.Append('-'); - } - callSign.Append(charMap[raw[i] % charMapLength]); - } - return callSign.ToString(); - } - - /// <summary> - /// Gets the Unique RSA Claim from the SAML token. - /// </summary> - /// <param name="cs">the claimset which contains the claim</param> - /// <returns>a RSA claim</returns> - private static Claim GetUniqueRsaClaim(ClaimSet cs) { - Requires.NotNull(cs, "cs"); - - Claim rsa = null; - - foreach (Claim c in cs.FindClaims(ClaimTypes.Rsa, Rights.PossessProperty)) { - if (null == rsa) { - rsa = c; - } else if (!rsa.Equals(c)) { - // Found two non-equal RSA claims - return null; - } - } - return rsa; - } - - /// <summary> - /// Does the actual calculation of a combined ID from a value and an RSA key. - /// </summary> - /// <param name="issuerKey">The key of the issuer of the token</param> - /// <param name="claimValue">the claim value to hash with.</param> - /// <returns>A base64 representation of the combined ID.</returns> - [SuppressMessage("Microsoft.Reliability", "CA2000:Dispose objects before losing scope", Justification = "False positive.")] - private static string ComputeCombinedId(RSA issuerKey, string claimValue) { - Requires.NotNull(issuerKey, "issuerKey"); - Requires.NotNull(claimValue, "claimValue"); - - int nameLength = Encoding.UTF8.GetByteCount(claimValue); - RSAParameters rsaParams = issuerKey.ExportParameters(false); - byte[] shaInput; - byte[] shaOutput; - - int i = 0; - shaInput = new byte[rsaParams.Modulus.Length + rsaParams.Exponent.Length + nameLength]; - rsaParams.Modulus.CopyTo(shaInput, i); - i += rsaParams.Modulus.Length; - rsaParams.Exponent.CopyTo(shaInput, i); - i += rsaParams.Exponent.Length; - i += Encoding.UTF8.GetBytes(claimValue, 0, claimValue.Length, shaInput, i); - - using (SHA256 sha = SHA256.Create()) { - shaOutput = sha.ComputeHash(shaInput); - } - - return Convert.ToBase64String(shaOutput); - } - } -} diff --git a/src/DotNetOpenAuth.InfoCard/InfoCard/WellKnownClaimTypes.cs b/src/DotNetOpenAuth.InfoCard/InfoCard/WellKnownClaimTypes.cs deleted file mode 100644 index 7a00d4d..0000000 --- a/src/DotNetOpenAuth.InfoCard/InfoCard/WellKnownClaimTypes.cs +++ /dev/null @@ -1,269 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="WellKnownClaimTypes.cs" company="Outercurve Foundation"> -// Copyright (c) Outercurve Foundation. All rights reserved. -// </copyright> -//----------------------------------------------------------------------- - -namespace DotNetOpenAuth.InfoCard { - using System.Diagnostics.CodeAnalysis; - - /// <summary> - /// Well known claims that may be included in an Information Card. - /// </summary> - public class WellKnownClaimTypes { - /// <summary> - /// The "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/anonymous" claim. - /// </summary> - public const string Anonymous = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/anonymous"; - - /// <summary> - /// The "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authentication" claim. - /// </summary> - public const string Authentication = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authentication"; - - /// <summary> - /// The "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authorizationdecision" claim. - /// </summary> - public const string AuthorizationDecision = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/authorizationdecision"; - - /// <summary> - /// The date of birth of a subject in a form allowed by the xs:date data type. - /// </summary> - /// <value>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/dateofbirth</value> - public const string DateOfBirth = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/dateofbirth"; - - /// <summary> - /// The "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid" claim. - /// </summary> - public const string DenyOnlySid = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/denyonlysid"; - - /// <summary> - /// The "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/dns" claim. - /// </summary> - public const string Dns = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/dns"; - - /// <summary> - /// The "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/hash" claim. - /// </summary> - public const string Hash = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/hash"; - - /// <summary> - /// The "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" claim. - /// </summary> - public const string NameIdentifier = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier"; - - /// <summary> - /// A private personal identifier (PPID) that identifies the subject to a relying party. - /// </summary> - /// <value>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier</value> - /// <remarks> - /// The word private is used in the sense that the subject identifier is - /// specific to a given relying party and hence private to that relying party. - /// A subject's PPID at one relying party cannot be correlated with the subject's - /// PPID at another relying party. - /// </remarks> - [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Ppid", Justification = "By design")] - public const string Ppid = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/privatepersonalidentifier"; - - /// <summary> - /// The "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/rsa" claim. - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Rsa", Justification = "By design")] - public const string Rsa = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/rsa"; - - /// <summary> - /// The "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sid" claim. - /// </summary> - public const string Sid = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sid"; - - /// <summary> - /// The "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/spn" claim. - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Spn", Justification = "By design")] - public const string Spn = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/spn"; - - /// <summary> - /// The "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/system" claim. - /// </summary> - public const string System = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/system"; - - /// <summary> - /// The "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/thumbprint" claim. - /// </summary> - public const string Thumbprint = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/thumbprint"; - - /// <summary> - /// The "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn" claim. - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Upn", Justification = "By design")] - public const string Upn = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"; - - /// <summary> - /// The "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/uri" claim. - /// </summary> - public const string Uri = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/uri"; - - /// <summary> - /// The "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/x500distinguishedname" claim. - /// </summary> - public const string X500DistinguishedName = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/x500distinguishedname"; - - /// <summary> - /// Prevents a default instance of the <see cref="WellKnownClaimTypes"/> class from being created. - /// </summary> - private WellKnownClaimTypes() { - } - - /// <summary> - /// Inherent attributes about a personality such as gender and bio. - /// </summary> - [SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible", Justification = "Required for desired autocompletion.")] - public static class Person { - /// <summary> - /// Gender of a subject. - /// </summary> - /// <value>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/gender</value> - /// <remarks> - /// The value of the claim can have any of these exact string values - /// 0 (unspecified) or - /// 1 (Male) or - /// 2 (Female). Using these values allows them to be language neutral. - /// </remarks> - public const string Gender = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/gender"; - } - - /// <summary> - /// Various ways to contact a person. - /// </summary> - [SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible", Justification = "Required for desired autocompletion.")] - public static class Contact { - /// <summary> - /// Preferred address for the To: field of email to be sent to the subject. - /// </summary> - /// <value>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress</value> - /// <remarks> - /// (mail in inetOrgPerson) Usually of the form @. According to inetOrgPerson using RFC 1274: This attribute type specifies an electronic mailbox attribute following the syntax specified in RFC 822. - /// </remarks> - public const string Email = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"; - - /// <summary> - /// Various types of phone numbers. - /// </summary> - [SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible", Justification = "Required for desired autocompletion.")] - public static class Phone { - /// <summary> - /// Primary or home telephone number of a subject. - /// </summary> - /// <value>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/homephone</value> - /// <remarks> - /// According to inetOrgPerson using RFC 1274: - /// This attribute type specifies - /// a home telephone number associated with a person. Attribute values - /// should follow the agreed format for international telephone numbers, - /// e.g. +44 71 123 4567. - /// </remarks> - public const string HomePhone = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/homephone"; - - /// <summary> - /// Mobile telephone number of a subject. - /// </summary> - /// <value>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/mobilephone</value> - /// <remarks> - /// (mobile in inetOrgPerson) According to inetOrgPerson using RFC 1274: This attribute type specifies a mobile telephone number associated with a person. Attribute values should follow the agreed format for international telephone numbers, e.g. +44 71 123 4567. - /// </remarks> - public const string MobilePhone = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/mobilephone"; - - /// <summary> - /// The "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/otherphone" claim. - /// </summary> - public const string OtherPhone = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/otherphone"; - } - - /// <summary> - /// The many fields that make up an address. - /// </summary> - [SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible", Justification = "Required for desired autocompletion.")] - public static class Address { - /// <summary> - /// Street address component of a subject's address information. - /// According to RFC 2256: - /// This attribute contains the physical address of the object to which - /// the entry corresponds, such as an address for package delivery. - /// Its content is arbitrary, but typically given as a PO Box number or - /// apartment/house number followed by a street name, e.g. 303 Mulberry St. - /// (street in RFC 2256) - /// </summary> - /// <value>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress</value> - public const string StreetAddress = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/streetaddress"; - - /// <summary> - /// Locality component of a subject's address information. - /// </summary> - /// <value>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/locality</value> - /// <remarks> - /// According to RFC 2256: This attribute contains the name of a locality, such as a city, county or other geographic region. e.g. Redmond. - /// </remarks> - public const string City = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/locality"; - - /// <summary> - /// Abbreviation for state or province name of a subject's address information. - /// </summary> - /// <value>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/stateorprovince</value> - /// <remarks> - /// According to RFC 2256: This attribute contains the full name of a state or province. The values should be coordinated on a national level and if well-known shortcuts exist - like the two-letter state abbreviations in the US these abbreviations are preferred over longer full names. e.g. WA. - /// </remarks> - public const string StateOrProvince = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/stateorprovince"; - - /// <summary> - /// The "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/postalcode" claim. - /// </summary> - public const string PostalCode = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/postalcode"; - - /// <summary> - /// Country of a subject. - /// </summary> - /// <value>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country</value> - /// <remarks> - /// (c in RFC 2256) According to RFC 2256: This attribute contains a two-letter ISO 3166 country code. - /// </remarks> - public const string Country = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/country"; - } - - /// <summary> - /// The names a person goes by. - /// </summary> - [SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible", Justification = "Required for desired autocompletion.")] - public static class Name { - /// <summary> - /// Preferred name or first name of a subject. According to RFC 2256: This attribute is used to hold the part of a persons name which is not their surname nor middle name. - /// </summary> - /// <value>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname</value> - /// <remarks> - /// (givenName in RFC 2256) - /// </remarks> - public const string GivenName = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"; - - /// <summary> - /// Surname or family name of a subject. - /// </summary> - /// <value>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname</value> - /// <remarks> - /// According to RFC 2256: This is the X.500 surname attribute which contains the family name of a person. - /// </remarks> - public const string Surname = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname"; - } - - /// <summary> - /// Various web addresses connected with this personality. - /// </summary> - [SuppressMessage("Microsoft.Naming", "CA1724:TypeNamesShouldNotMatchNamespaces", Justification = "By design"), SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible", Justification = "Required for desired autocompletion.")] - public static class Web { - /// <summary> - /// The Web page of a subject expressed as a URL. - /// </summary> - /// <value>http://schemas.xmlsoap.org/ws/2005/05/identity/claims/webpage</value> - public const string Homepage = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/webpage"; - } - } - } -}
\ No newline at end of file diff --git a/src/DotNetOpenAuth.InfoCard/InfoCard/WellKnownIssuers.cs b/src/DotNetOpenAuth.InfoCard/InfoCard/WellKnownIssuers.cs deleted file mode 100644 index 103bac4..0000000 --- a/src/DotNetOpenAuth.InfoCard/InfoCard/WellKnownIssuers.cs +++ /dev/null @@ -1,23 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="WellKnownIssuers.cs" company="Outercurve Foundation"> -// Copyright (c) Outercurve Foundation. All rights reserved. -// </copyright> -//----------------------------------------------------------------------- - -namespace DotNetOpenAuth.InfoCard { - /// <summary> - /// Common InfoCard issuers. - /// </summary> - public sealed class WellKnownIssuers { - /// <summary> - /// The Issuer URI to use for self-issued cards. - /// </summary> - public const string SelfIssued = "http://schemas.xmlsoap.org/ws/2005/05/identity/issuer/self"; - - /// <summary> - /// Prevents a default instance of the <see cref="WellKnownIssuers"/> class from being created. - /// </summary> - private WellKnownIssuers() { - } - } -} diff --git a/src/DotNetOpenAuth.InfoCard/InfoCardErrorUtilities.cs b/src/DotNetOpenAuth.InfoCard/InfoCardErrorUtilities.cs deleted file mode 100644 index aaff82b..0000000 --- a/src/DotNetOpenAuth.InfoCard/InfoCardErrorUtilities.cs +++ /dev/null @@ -1,38 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="InfoCardErrorUtilities.cs" company="Outercurve Foundation"> -// Copyright (c) Outercurve Foundation. All rights reserved. -// </copyright> -//----------------------------------------------------------------------- - -namespace DotNetOpenAuth { - using System; - using System.Collections.Generic; - using System.Diagnostics.Contracts; - using System.Globalization; - using System.Linq; - using System.Text; - using Validation; - - /// <summary> - /// Error reporting methods specific to InfoCard validation. - /// </summary> - internal static class InfoCardErrorUtilities { - /// <summary> - /// Checks a condition and throws an <see cref="InfoCard.InformationCardException"/> - /// if it evaluates to false. - /// </summary> - /// <param name="condition">The condition to check.</param> - /// <param name="errorMessage">The message to include in the exception, if created.</param> - /// <param name="args">The formatting arguments.</param> - /// <exception cref="InfoCard.InformationCardException">Thrown if <paramref name="condition"/> evaluates to <c>false</c>.</exception> - [Pure] - internal static void VerifyInfoCard(bool condition, string errorMessage, params object[] args) { - Requires.NotNull(args, "args"); - Assumes.True(errorMessage != null); - if (!condition) { - errorMessage = string.Format(CultureInfo.CurrentCulture, errorMessage, args); - throw new InfoCard.InformationCardException(errorMessage); - } - } - } -} diff --git a/src/DotNetOpenAuth.InfoCard/Properties/AssemblyInfo.cs b/src/DotNetOpenAuth.InfoCard/Properties/AssemblyInfo.cs deleted file mode 100644 index 5d473ec..0000000 --- a/src/DotNetOpenAuth.InfoCard/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,45 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="AssemblyInfo.cs" company="Outercurve Foundation"> -// Copyright (c) Outercurve Foundation. All rights reserved. -// </copyright> -//----------------------------------------------------------------------- - -// We DON'T put an AssemblyVersionAttribute in here because it is generated in the build. - -using System; -using System.Net; -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Security; -using System.Security.Permissions; -using System.Web.UI; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyCopyright("Copyright © 2012 Outercurve Foundation")] -[assembly: CLSCompliant(true)] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("7d73990c-47c0-4256-9f20-a893add9e289")] - -#if StrongNameSigned -// See comment at top of this file. We need this so that strong-naming doesn't -// keep this assembly from being useful to shared host (medium trust) web sites. -[assembly: AllowPartiallyTrustedCallers] - -[assembly: InternalsVisibleTo("DotNetOpenAuth.InfoCard.UI, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.Test, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] -#else -[assembly: InternalsVisibleTo("DotNetOpenAuth.InfoCard.UI")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.Test")] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] -#endif diff --git a/src/DotNetOpenAuth.InfoCard/packages.config b/src/DotNetOpenAuth.InfoCard/packages.config deleted file mode 100644 index e3309bc..0000000 --- a/src/DotNetOpenAuth.InfoCard/packages.config +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<packages> - <package id="Validation" version="2.0.2.13022" targetFramework="net45" /> -</packages>
\ No newline at end of file diff --git a/src/DotNetOpenAuth.OpenId.RelyingParty.UI/Properties/AssemblyInfo.cs b/src/DotNetOpenAuth.OpenId.RelyingParty.UI/Properties/AssemblyInfo.cs index 0088899..f1d1bdb 100644 --- a/src/DotNetOpenAuth.OpenId.RelyingParty.UI/Properties/AssemblyInfo.cs +++ b/src/DotNetOpenAuth.OpenId.RelyingParty.UI/Properties/AssemblyInfo.cs @@ -39,11 +39,9 @@ using System.Web.UI; [assembly: InternalsVisibleTo("DotNetOpenAuth.Test, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.Provider, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OpenIdInfoCard.UI, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] #else [assembly: InternalsVisibleTo("DotNetOpenAuth.Test")] [assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.Provider")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OpenIdInfoCard.UI")] [assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] #endif diff --git a/src/DotNetOpenAuth.OpenIdInfoCard.UI/DotNetOpenAuth.OpenIdInfoCard.UI.csproj b/src/DotNetOpenAuth.OpenIdInfoCard.UI/DotNetOpenAuth.OpenIdInfoCard.UI.csproj deleted file mode 100644 index 8c71fb5..0000000 --- a/src/DotNetOpenAuth.OpenIdInfoCard.UI/DotNetOpenAuth.OpenIdInfoCard.UI.csproj +++ /dev/null @@ -1,81 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> - <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), EnlistmentInfo.props))\EnlistmentInfo.props" Condition=" '$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), EnlistmentInfo.props))' != '' " /> - <PropertyGroup> - <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration> - <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform> - <SolutionDir Condition="$(SolutionDir) == '' Or $(SolutionDir) == '*Undefined*'">..\</SolutionDir> - </PropertyGroup> - <Import Project="$(ProjectRoot)tools\DotNetOpenAuth.props" /> - <PropertyGroup> - <SchemaVersion>2.0</SchemaVersion> - <ProjectGuid>{3A8347E8-59A5-4092-8842-95C75D7D2F36}</ProjectGuid> - <OutputType>Library</OutputType> - <AppDesignerFolder>Properties</AppDesignerFolder> - <RootNamespace>DotNetOpenAuth</RootNamespace> - <AssemblyName>DotNetOpenAuth.OpenIdInfoCard.UI</AssemblyName> - </PropertyGroup> - <Import Project="$(ProjectRoot)tools\DotNetOpenAuth.Product.props" /> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' "> - </PropertyGroup> - <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' "> - </PropertyGroup> - <ItemGroup> - <Compile Include="OpenId\RelyingParty\OpenIdInfoCardSelector.cs" /> - <Compile Include="OpenId\RelyingParty\SelectorInfoCardButton.cs" /> - <Compile Include="Properties\AssemblyInfo.cs" /> - </ItemGroup> - <ItemGroup> - <ProjectReference Include="..\DotNetOpenAuth.InfoCard.UI\DotNetOpenAuth.InfoCard.UI.csproj"> - <Project>{E040EB58-B4D2-457B-A023-AE6EF3BD34DE}</Project> - <Name>DotNetOpenAuth.InfoCard.UI</Name> - </ProjectReference> - <ProjectReference Include="..\DotNetOpenAuth.InfoCard\DotNetOpenAuth.InfoCard.csproj"> - <Project>{408D10B8-34BA-4CBD-B7AA-FEB1907ABA4C}</Project> - <Name>DotNetOpenAuth.InfoCard</Name> - </ProjectReference> - <ProjectReference Include="..\DotNetOpenAuth.Core.UI\DotNetOpenAuth.Core.UI.csproj"> - <Project>{173E7B8D-E751-46E2-A133-F72297C0D2F4}</Project> - <Name>DotNetOpenAuth.Core.UI</Name> - </ProjectReference> - <ProjectReference Include="..\DotNetOpenAuth.Core\DotNetOpenAuth.Core.csproj"> - <Project>{60426312-6AE5-4835-8667-37EDEA670222}</Project> - <Name>DotNetOpenAuth.Core</Name> - </ProjectReference> - <ProjectReference Include="..\DotNetOpenAuth.OpenId.RelyingParty.UI\DotNetOpenAuth.OpenId.RelyingParty.UI.csproj"> - <Project>{1ED8D424-F8AB-4050-ACEB-F27F4F909484}</Project> - <Name>DotNetOpenAuth.OpenId.RelyingParty.UI</Name> - </ProjectReference> - <ProjectReference Include="..\DotNetOpenAuth.OpenId.RelyingParty\DotNetOpenAuth.OpenId.RelyingParty.csproj"> - <Project>{F458AB60-BA1C-43D9-8CEF-EC01B50BE87B}</Project> - <Name>DotNetOpenAuth.OpenId.RelyingParty</Name> - </ProjectReference> - <ProjectReference Include="..\DotNetOpenAuth.OpenId.UI\DotNetOpenAuth.OpenId.UI.csproj"> - <Project>{75E13AAE-7D51-4421-ABFD-3F3DC91F576E}</Project> - <Name>DotNetOpenAuth.OpenId.UI</Name> - </ProjectReference> - <ProjectReference Include="..\DotNetOpenAuth.OpenId\DotNetOpenAuth.OpenId.csproj"> - <Project>{3896A32A-E876-4C23-B9B8-78E17D134CD3}</Project> - <Name>DotNetOpenAuth.OpenId</Name> - </ProjectReference> - <ProjectReference Include="..\Org.Mentalis.Security.Cryptography\Org.Mentalis.Security.Cryptography.csproj"> - <Project>{26DC877F-5987-48DD-9DDB-E62F2DE0E150}</Project> - <Name>Org.Mentalis.Security.Cryptography</Name> - </ProjectReference> - </ItemGroup> - <ItemGroup> - <Reference Include="System.Net.Http" /> - <Reference Include="System.Net.Http.WebRequest" /> - <Reference Include="Validation, Version=2.0.0.0, Culture=neutral, PublicKeyToken=2fc06f0d701809a7, processorArchitecture=MSIL"> - <SpecificVersion>False</SpecificVersion> - <HintPath>..\packages\Validation.2.0.2.13022\lib\portable-windows8+net40+sl5+windowsphone8\Validation.dll</HintPath> - </Reference> - </ItemGroup> - <ItemGroup> - <None Include="packages.config" /> - </ItemGroup> - <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" /> - <Import Project="$(ProjectRoot)tools\DotNetOpenAuth.targets" /> - <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), EnlistmentInfo.targets))\EnlistmentInfo.targets" Condition=" '$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), EnlistmentInfo.targets))' != '' " /> - <Import Project="$(SolutionDir)\.nuget\nuget.targets" /> -</Project>
\ No newline at end of file diff --git a/src/DotNetOpenAuth.OpenIdInfoCard.UI/OpenId/RelyingParty/OpenIdInfoCardSelector.cs b/src/DotNetOpenAuth.OpenIdInfoCard.UI/OpenId/RelyingParty/OpenIdInfoCardSelector.cs deleted file mode 100644 index 9470ef0..0000000 --- a/src/DotNetOpenAuth.OpenIdInfoCard.UI/OpenId/RelyingParty/OpenIdInfoCardSelector.cs +++ /dev/null @@ -1,120 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="OpenIdInfoCardSelector.cs" company="Outercurve Foundation"> -// Copyright (c) Outercurve Foundation. All rights reserved. -// </copyright> -//----------------------------------------------------------------------- - -namespace DotNetOpenAuth.OpenId.RelyingParty { - using System; - using System.Collections.Generic; - using System.Collections.ObjectModel; - using System.ComponentModel; - using System.Globalization; - using System.IdentityModel.Claims; - using System.Linq; - using System.Text; - using System.Web; - using System.Web.UI; - using System.Web.UI.HtmlControls; - using System.Web.UI.WebControls; - using DotNetOpenAuth.ComponentModel; - using DotNetOpenAuth.InfoCard; - ////using DotNetOpenAuth.InfoCard; - using DotNetOpenAuth.Messaging; - using Validation; - - /// <summary> - /// An ASP.NET control that provides a user-friendly way of logging into a web site using OpenID. - /// </summary> - [ToolboxData("<{0}:OpenIdInfoCardSelector runat=\"server\"></{0}:OpenIdInfoCardSelector>")] - public class OpenIdInfoCardSelector : OpenIdSelector { - /// <summary> - /// The InfoCard selector button. - /// </summary> - private SelectorInfoCardButton selectorButton; - - /// <summary> - /// Occurs when an InfoCard has been submitted and decoded. - /// </summary> - public event EventHandler<ReceivedTokenEventArgs> ReceivedToken; - - /// <summary> - /// Occurs when [token processing error]. - /// </summary> - public event EventHandler<TokenProcessingErrorEventArgs> TokenProcessingError; - - /// <summary> - /// Ensures that the child controls have been built, but doesn't set control - /// properties that require executing <see cref="Control.EnsureID"/> in order to avoid - /// certain initialization order problems. - /// </summary> - /// <remarks> - /// We don't just call EnsureChildControls() and then set the property on - /// this.textBox itself because (apparently) setting this property in the ASPX - /// page and thus calling this EnsureID() via EnsureChildControls() this early - /// results in no ID. - /// </remarks> - protected override void EnsureChildControlsAreCreatedSafe() { - if (this.selectorButton == null) { - this.selectorButton = this.Buttons.OfType<SelectorInfoCardButton>().FirstOrDefault(); - if (this.selectorButton != null) { - var selector = this.selectorButton.InfoCardSelector; - selector.ClaimsRequested.Add(new ClaimType { Name = ClaimTypes.PPID }); - selector.ImageSize = InfoCardImageSize.Size60x42; - selector.ReceivedToken += this.InfoCardSelector_ReceivedToken; - selector.TokenProcessingError += this.InfoCardSelector_TokenProcessingError; - this.Controls.Add(selector); - } - } - - base.EnsureChildControlsAreCreatedSafe(); - } - - /// <summary> - /// Fires the <see cref="ReceivedToken"/> event. - /// </summary> - /// <param name="e">The token, if it was decrypted.</param> - protected virtual void OnReceivedToken(ReceivedTokenEventArgs e) { - Requires.NotNull(e, "paramName"); - - var receivedInfoCard = this.ReceivedToken; - if (receivedInfoCard != null) { - receivedInfoCard(this, e); - } - } - - /// <summary> - /// Raises the <see cref="E:TokenProcessingError"/> event. - /// </summary> - /// <param name="e">The <see cref="DotNetOpenAuth.InfoCard.TokenProcessingErrorEventArgs"/> instance containing the event data.</param> - protected virtual void OnTokenProcessingError(TokenProcessingErrorEventArgs e) { - Requires.NotNull(e, "paramName"); - - var tokenProcessingError = this.TokenProcessingError; - if (tokenProcessingError != null) { - tokenProcessingError(this, e); - } - } - - /// <summary> - /// Handles the ReceivedToken event of the infoCardSelector control. - /// </summary> - /// <param name="sender">The source of the event.</param> - /// <param name="e">The <see cref="DotNetOpenAuth.InfoCard.ReceivedTokenEventArgs"/> instance containing the event data.</param> - private void InfoCardSelector_ReceivedToken(object sender, ReceivedTokenEventArgs e) { - this.Page.Response.SetCookie(new HttpCookie("openid_identifier", "infocard") { - Path = this.Page.Request.ApplicationPath, - }); - this.OnReceivedToken(e); - } - - /// <summary> - /// Handles the TokenProcessingError event of the infoCardSelector control. - /// </summary> - /// <param name="sender">The source of the event.</param> - /// <param name="e">The <see cref="DotNetOpenAuth.InfoCard.TokenProcessingErrorEventArgs"/> instance containing the event data.</param> - private void InfoCardSelector_TokenProcessingError(object sender, TokenProcessingErrorEventArgs e) { - this.OnTokenProcessingError(e); - } - } -} diff --git a/src/DotNetOpenAuth.OpenIdInfoCard.UI/OpenId/RelyingParty/SelectorInfoCardButton.cs b/src/DotNetOpenAuth.OpenIdInfoCard.UI/OpenId/RelyingParty/SelectorInfoCardButton.cs deleted file mode 100644 index cbb1011..0000000 --- a/src/DotNetOpenAuth.OpenIdInfoCard.UI/OpenId/RelyingParty/SelectorInfoCardButton.cs +++ /dev/null @@ -1,102 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="SelectorInfoCardButton.cs" company="Outercurve Foundation"> -// Copyright (c) Outercurve Foundation. All rights reserved. -// </copyright> -//----------------------------------------------------------------------- - -namespace DotNetOpenAuth.OpenId.RelyingParty { - using System; - using System.Collections.ObjectModel; - using System.ComponentModel; - using System.Web.UI; - using DotNetOpenAuth.InfoCard; - using Validation; - - /// <summary> - /// A button that appears in the <see cref="OpenIdSelector"/> control that - /// activates the Information Card selector on the browser, if one is available. - /// </summary> - public class SelectorInfoCardButton : SelectorButton, IDisposable { - /// <summary> - /// The backing field for the <see cref="InfoCardSelector"/> property. - /// </summary> - private InfoCardSelector infoCardSelector; - - /// <summary> - /// Initializes a new instance of the <see cref="SelectorInfoCardButton"/> class. - /// </summary> - public SelectorInfoCardButton() { - Reporting.RecordFeatureUse(this); - } - - /// <summary> - /// Gets or sets the InfoCard selector which may be displayed alongside the OP buttons. - /// </summary> - [PersistenceMode(PersistenceMode.InnerProperty)] - public InfoCardSelector InfoCardSelector { - get { - if (this.infoCardSelector == null) { - this.infoCardSelector = new InfoCardSelector(); - } - - return this.infoCardSelector; - } - - set { - Requires.NotNull(value, "value"); - if (this.infoCardSelector != null) { - Logger.Library.WarnFormat("{0}.InfoCardSelector property is being set multiple times.", GetType().Name); - } - - this.infoCardSelector = value; - } - } - - #region IDisposable Members - - /// <summary> - /// Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. - /// </summary> - public void Dispose() { - this.Dispose(true); - GC.SuppressFinalize(this); - } - - #endregion - - /// <summary> - /// Ensures that this button has been initialized to a valid state. - /// </summary> - internal override void EnsureValid() { - } - - /// <summary> - /// Renders the leading attributes for the LI tag. - /// </summary> - /// <param name="writer">The writer.</param> - protected internal override void RenderLeadingAttributes(HtmlTextWriter writer) { - writer.AddAttribute(HtmlTextWriterAttribute.Class, "infocard"); - } - - /// <summary> - /// Renders the content of the button. - /// </summary> - /// <param name="writer">The writer.</param> - /// <param name="selector">The containing selector control.</param> - protected internal override void RenderButtonContent(HtmlTextWriter writer, OpenIdSelector selector) { - this.InfoCardSelector.RenderControl(writer); - } - - /// <summary> - /// Releases unmanaged and - optionally - managed resources - /// </summary> - /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> - protected virtual void Dispose(bool disposing) { - if (disposing) { - if (this.infoCardSelector != null) { - this.infoCardSelector.Dispose(); - } - } - } - } -} diff --git a/src/DotNetOpenAuth.OpenIdInfoCard.UI/Properties/AssemblyInfo.cs b/src/DotNetOpenAuth.OpenIdInfoCard.UI/Properties/AssemblyInfo.cs deleted file mode 100644 index b5dcdde..0000000 --- a/src/DotNetOpenAuth.OpenIdInfoCard.UI/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,73 +0,0 @@ -//----------------------------------------------------------------------- -// <copyright file="AssemblyInfo.cs" company="Outercurve Foundation"> -// Copyright (c) Outercurve Foundation. All rights reserved. -// </copyright> -//----------------------------------------------------------------------- - -// We DON'T put an AssemblyVersionAttribute in here because it is generated in the build. - -using System; -using System.Net; -using System.Reflection; -using System.Resources; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; -using System.Security; -using System.Security.Permissions; -using System.Web.UI; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyCopyright("Copyright © 2012 Outercurve Foundation")] -[assembly: CLSCompliant(true)] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("7d73990c-47c0-4256-9f20-a893add9e289")] - -#if StrongNameSigned -// See comment at top of this file. We need this so that strong-naming doesn't -// keep this assembly from being useful to shared host (medium trust) web sites. -[assembly: AllowPartiallyTrustedCallers] - -[assembly: InternalsVisibleTo("DotNetOpenAuth.Test, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.InfoCard, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.InfoCard.UI, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.UI, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.RelyingParty, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.RelyingParty.UI, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.Provider, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.Provider.UI, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth.Consumer, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth.ServiceProvider, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth2, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth2.AuthorizationServer, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth2.ResourceServer, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth2.Client, PublicKey=0024000004800000140100000602000000240000525341310008000001000100ff61f0ffd86a577730128d6b9daed5195c2ec729115934b8da0763ac4f12ae2416a11657976a3adc5fec78fe98b8e4f65b2f29b1c116eb761111315f4f10d7a9a827615610b49ae262fa8dd52d8181b54b2fcba7e2d81723f7922e65154482dd208f98c084c59fe028f5bcb227022acfe03aef64ac6ed80e86093ebe2dafbbb00583321b3ec81d275c65077310dfcb837f6c1ec85a3554ac0d04892bdc76647973fce74f9cbd1435d6adba79942eb4ce60b923a62dbb8eebfed3283dfce3aa8123ee108c095a7a70be3ca2e92059223e0bfbfb56302b90906ef8e4f649cd42eb436dd9ee1173fd141af9b3f5def5eefd15771e24c3de9ea1f2b0985cd3756199")] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2, PublicKey=0024000004800000940000000602000000240000525341310004000001000100c547cac37abd99c8db225ef2f6c8a3602f3b3606cc9891605d02baa56104f4cfc0734aa39b93bf7852f7d9266654753cc297e7d2edfe0bac1cdcf9f717241550e0a7b191195b7667bb4f64bcb8e2121380fd1d9d46ad2d92d2d15605093924cceaf74c4861eff62abf69b9291ed0a340e113be11e6a7d3113e92484cf7045cc7")] -#else -[assembly: InternalsVisibleTo("DotNetOpenAuth.Test")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.InfoCard")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.InfoCard.UI")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.UI")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.RelyingParty")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.RelyingParty.UI")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.Provider")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OpenId.Provider.UI")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth.Consumer")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth.ServiceProvider")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth2")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth2.AuthorizationServer")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth2.ResourceServer")] -[assembly: InternalsVisibleTo("DotNetOpenAuth.OAuth2.Client")] -[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")] -#endif diff --git a/src/DotNetOpenAuth.OpenIdInfoCard.UI/packages.config b/src/DotNetOpenAuth.OpenIdInfoCard.UI/packages.config deleted file mode 100644 index d32d62f..0000000 --- a/src/DotNetOpenAuth.OpenIdInfoCard.UI/packages.config +++ /dev/null @@ -1,5 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<packages> - <package id="Microsoft.Net.Http" version="2.0.20710.0" targetFramework="net45" /> - <package id="Validation" version="2.0.2.13022" targetFramework="net45" /> -</packages>
\ No newline at end of file diff --git a/src/DotNetOpenAuth.Test/DotNetOpenAuth.Test.csproj b/src/DotNetOpenAuth.Test/DotNetOpenAuth.Test.csproj index 1ab1d20..e5022ff 100644 --- a/src/DotNetOpenAuth.Test/DotNetOpenAuth.Test.csproj +++ b/src/DotNetOpenAuth.Test/DotNetOpenAuth.Test.csproj @@ -306,14 +306,6 @@ <EmbeddedResource Include="OpenId\Discovery\htmldiscovery\html20provWithBadXrds.html" /> </ItemGroup> <ItemGroup> - <ProjectReference Include="..\DotNetOpenAuth.InfoCard.UI\DotNetOpenAuth.InfoCard.UI.csproj"> - <Project>{E040EB58-B4D2-457B-A023-AE6EF3BD34DE}</Project> - <Name>DotNetOpenAuth.InfoCard.UI</Name> - </ProjectReference> - <ProjectReference Include="..\DotNetOpenAuth.InfoCard\DotNetOpenAuth.InfoCard.csproj"> - <Project>{408D10B8-34BA-4CBD-B7AA-FEB1907ABA4C}</Project> - <Name>DotNetOpenAuth.InfoCard</Name> - </ProjectReference> <ProjectReference Include="..\DotNetOpenAuth.Core.UI\DotNetOpenAuth.Core.UI.csproj"> <Project>{173E7B8D-E751-46E2-A133-F72297C0D2F4}</Project> <Name>DotNetOpenAuth.Core.UI</Name> @@ -382,10 +374,6 @@ <Project>{75E13AAE-7D51-4421-ABFD-3F3DC91F576E}</Project> <Name>DotNetOpenAuth.OpenId.UI</Name> </ProjectReference> - <ProjectReference Include="..\DotNetOpenAuth.OpenIdInfoCard.UI\DotNetOpenAuth.OpenIdInfoCard.UI.csproj"> - <Project>{3a8347e8-59a5-4092-8842-95c75d7d2f36}</Project> - <Name>DotNetOpenAuth.OpenIdInfoCard.UI</Name> - </ProjectReference> <ProjectReference Include="..\DotNetOpenAuth.OpenIdOAuth\DotNetOpenAuth.OpenIdOAuth.csproj"> <Project>{4bfaa336-5df3-4f27-82d3-06d13240e8ab}</Project> <Name>DotNetOpenAuth.OpenIdOAuth</Name> diff --git a/src/DotNetOpenAuth.sln b/src/DotNetOpenAuth.sln index 30d9717..ae1da5f 100644 --- a/src/DotNetOpenAuth.sln +++ b/src/DotNetOpenAuth.sln @@ -42,8 +42,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OpenID", "OpenID", "{C7EF18 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OAuth", "OAuth", "{9AF74F53-10F5-49A2-B747-87B97CD559D3}" EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "InfoCard", "InfoCard", "{529B4262-6B5A-4EF9-BD3B-1D29A2597B67}" -EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "OAuth2", "OAuth2", "{238B6BA8-AD99-43C9-B8E2-D2BCE6CE04DC}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Combinations", "Combinations", "{57A7DD35-666C-4FA3-9A1B-38961E50CA27}" @@ -87,8 +85,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetOpenAuth.OpenId", "Do EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetOpenAuth.OAuth", "DotNetOpenAuth.OAuth\DotNetOpenAuth.OAuth.csproj", "{A288FCC8-6FCF-46DA-A45E-5F9281556361}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetOpenAuth.InfoCard", "DotNetOpenAuth.InfoCard\DotNetOpenAuth.InfoCard.csproj", "{408D10B8-34BA-4CBD-B7AA-FEB1907ABA4C}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetOpenAuth.OAuth2", "DotNetOpenAuth.OAuth2\DotNetOpenAuth.OAuth2.csproj", "{56459A6C-6BA2-4BAC-A9C0-27E3BD961FA6}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetOpenAuth.OpenId.Provider", "DotNetOpenAuth.OpenId.Provider\DotNetOpenAuth.OpenId.Provider.csproj", "{F8284738-3B5D-4733-A511-38C23F4A763F}" @@ -107,8 +103,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetOpenAuth.OpenId.UI", EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetOpenAuth.Core.UI", "DotNetOpenAuth.Core.UI\DotNetOpenAuth.Core.UI.csproj", "{173E7B8D-E751-46E2-A133-F72297C0D2F4}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetOpenAuth.InfoCard.UI", "DotNetOpenAuth.InfoCard.UI\DotNetOpenAuth.InfoCard.UI.csproj", "{E040EB58-B4D2-457B-A023-AE6EF3BD34DE}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetOpenAuth.OAuth.Consumer", "DotNetOpenAuth.OAuth.Consumer\DotNetOpenAuth.OAuth.Consumer.csproj", "{B202E40D-4663-4A2B-ACDA-865F88FF7CAA}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetOpenAuth.OAuth.ServiceProvider", "DotNetOpenAuth.OAuth.ServiceProvider\DotNetOpenAuth.OAuth.ServiceProvider.csproj", "{FED1923A-6D70-49B5-A37A-FB744FEC1C86}" @@ -121,8 +115,6 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetOpenAuth.OAuth2.Resou EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetOpenAuth.OAuth2.Client.UI", "DotNetOpenAuth.OAuth2.Client.UI\DotNetOpenAuth.OAuth2.Client.UI.csproj", "{ADC2CC8C-541E-4F86-ACB1-DD504A36FA4B}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetOpenAuth.OpenIdInfoCard.UI", "DotNetOpenAuth.OpenIdInfoCard.UI\DotNetOpenAuth.OpenIdInfoCard.UI.csproj", "{3A8347E8-59A5-4092-8842-95C75D7D2F36}" -EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OAuthConsumer", "..\samples\OAuthConsumer\OAuthConsumer.csproj", "{2BF1FFD1-607E-40D0-8AB5-EDA677EF932D}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OAuthServiceProvider", "..\samples\OAuthServiceProvider\OAuthServiceProvider.csproj", "{CAA2408C-6918-4902-A512-58BCD62216C3}" @@ -235,12 +227,6 @@ Global {A288FCC8-6FCF-46DA-A45E-5F9281556361}.Debug|Any CPU.Build.0 = Debug|Any CPU {A288FCC8-6FCF-46DA-A45E-5F9281556361}.Release|Any CPU.ActiveCfg = Release|Any CPU {A288FCC8-6FCF-46DA-A45E-5F9281556361}.Release|Any CPU.Build.0 = Release|Any CPU - {408D10B8-34BA-4CBD-B7AA-FEB1907ABA4C}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU - {408D10B8-34BA-4CBD-B7AA-FEB1907ABA4C}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU - {408D10B8-34BA-4CBD-B7AA-FEB1907ABA4C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {408D10B8-34BA-4CBD-B7AA-FEB1907ABA4C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {408D10B8-34BA-4CBD-B7AA-FEB1907ABA4C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {408D10B8-34BA-4CBD-B7AA-FEB1907ABA4C}.Release|Any CPU.Build.0 = Release|Any CPU {56459A6C-6BA2-4BAC-A9C0-27E3BD961FA6}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU {56459A6C-6BA2-4BAC-A9C0-27E3BD961FA6}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU {56459A6C-6BA2-4BAC-A9C0-27E3BD961FA6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -295,12 +281,6 @@ Global {173E7B8D-E751-46E2-A133-F72297C0D2F4}.Debug|Any CPU.Build.0 = Debug|Any CPU {173E7B8D-E751-46E2-A133-F72297C0D2F4}.Release|Any CPU.ActiveCfg = Release|Any CPU {173E7B8D-E751-46E2-A133-F72297C0D2F4}.Release|Any CPU.Build.0 = Release|Any CPU - {E040EB58-B4D2-457B-A023-AE6EF3BD34DE}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU - {E040EB58-B4D2-457B-A023-AE6EF3BD34DE}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU - {E040EB58-B4D2-457B-A023-AE6EF3BD34DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E040EB58-B4D2-457B-A023-AE6EF3BD34DE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E040EB58-B4D2-457B-A023-AE6EF3BD34DE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E040EB58-B4D2-457B-A023-AE6EF3BD34DE}.Release|Any CPU.Build.0 = Release|Any CPU {B202E40D-4663-4A2B-ACDA-865F88FF7CAA}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU {B202E40D-4663-4A2B-ACDA-865F88FF7CAA}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU {B202E40D-4663-4A2B-ACDA-865F88FF7CAA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU @@ -337,12 +317,6 @@ Global {ADC2CC8C-541E-4F86-ACB1-DD504A36FA4B}.Debug|Any CPU.Build.0 = Debug|Any CPU {ADC2CC8C-541E-4F86-ACB1-DD504A36FA4B}.Release|Any CPU.ActiveCfg = Release|Any CPU {ADC2CC8C-541E-4F86-ACB1-DD504A36FA4B}.Release|Any CPU.Build.0 = Release|Any CPU - {3A8347E8-59A5-4092-8842-95C75D7D2F36}.CodeAnalysis|Any CPU.ActiveCfg = CodeAnalysis|Any CPU - {3A8347E8-59A5-4092-8842-95C75D7D2F36}.CodeAnalysis|Any CPU.Build.0 = CodeAnalysis|Any CPU - {3A8347E8-59A5-4092-8842-95C75D7D2F36}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3A8347E8-59A5-4092-8842-95C75D7D2F36}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3A8347E8-59A5-4092-8842-95C75D7D2F36}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3A8347E8-59A5-4092-8842-95C75D7D2F36}.Release|Any CPU.Build.0 = Release|Any CPU {2BF1FFD1-607E-40D0-8AB5-EDA677EF932D}.CodeAnalysis|Any CPU.ActiveCfg = Debug|Any CPU {2BF1FFD1-607E-40D0-8AB5-EDA677EF932D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2BF1FFD1-607E-40D0-8AB5-EDA677EF932D}.Debug|Any CPU.Build.0 = Debug|Any CPU @@ -402,7 +376,6 @@ Global {5C65603B-235F-47E6-B536-06385C60DE7F} = {E9ED920D-1F83-48C0-9A4B-09CCE505FE6D} {C7EF1823-3AA7-477E-8476-28929F5C05D2} = {8D4236F7-C49B-49D3-BA71-6B86C9514BDE} {9AF74F53-10F5-49A2-B747-87B97CD559D3} = {8D4236F7-C49B-49D3-BA71-6B86C9514BDE} - {529B4262-6B5A-4EF9-BD3B-1D29A2597B67} = {8D4236F7-C49B-49D3-BA71-6B86C9514BDE} {238B6BA8-AD99-43C9-B8E2-D2BCE6CE04DC} = {8D4236F7-C49B-49D3-BA71-6B86C9514BDE} {57A7DD35-666C-4FA3-9A1B-38961E50CA27} = {8D4236F7-C49B-49D3-BA71-6B86C9514BDE} {60426312-6AE5-4835-8667-37EDEA670222} = {8D4236F7-C49B-49D3-BA71-6B86C9514BDE} @@ -419,15 +392,12 @@ Global {A288FCC8-6FCF-46DA-A45E-5F9281556361} = {9AF74F53-10F5-49A2-B747-87B97CD559D3} {B202E40D-4663-4A2B-ACDA-865F88FF7CAA} = {9AF74F53-10F5-49A2-B747-87B97CD559D3} {FED1923A-6D70-49B5-A37A-FB744FEC1C86} = {9AF74F53-10F5-49A2-B747-87B97CD559D3} - {408D10B8-34BA-4CBD-B7AA-FEB1907ABA4C} = {529B4262-6B5A-4EF9-BD3B-1D29A2597B67} - {E040EB58-B4D2-457B-A023-AE6EF3BD34DE} = {529B4262-6B5A-4EF9-BD3B-1D29A2597B67} {56459A6C-6BA2-4BAC-A9C0-27E3BD961FA6} = {238B6BA8-AD99-43C9-B8E2-D2BCE6CE04DC} {99BB7543-EA16-43EE-A7BC-D7A25A3B22F6} = {238B6BA8-AD99-43C9-B8E2-D2BCE6CE04DC} {CDEDD439-7F35-4E6E-8605-4E70BDC4CC99} = {238B6BA8-AD99-43C9-B8E2-D2BCE6CE04DC} {A1A3150A-7B0E-4A34-8E35-045296CD3C76} = {238B6BA8-AD99-43C9-B8E2-D2BCE6CE04DC} {ADC2CC8C-541E-4F86-ACB1-DD504A36FA4B} = {238B6BA8-AD99-43C9-B8E2-D2BCE6CE04DC} {CCF3728A-B3D7-404A-9BC6-75197135F2D7} = {238B6BA8-AD99-43C9-B8E2-D2BCE6CE04DC} - {3A8347E8-59A5-4092-8842-95C75D7D2F36} = {57A7DD35-666C-4FA3-9A1B-38961E50CA27} {4BFAA336-5DF3-4F27-82D3-06D13240E8AB} = {57A7DD35-666C-4FA3-9A1B-38961E50CA27} {2BF1FFD1-607E-40D0-8AB5-EDA677EF932D} = {2DA24D4F-6918-43CF-973C-BC9D818F8E90} {CAA2408C-6918-4902-A512-58BCD62216C3} = {2DA24D4F-6918-43CF-973C-BC9D818F8E90} |