diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2013-06-16 16:58:19 -0700 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2013-06-16 16:58:19 -0700 |
commit | cccc7a63b9abeed1f075a35a532e25d52c1d89db (patch) | |
tree | b6e249316b69d2ea7ad1652ecb9f2bdebf892577 | |
parent | 89c2167a677ebb23aca7f1e9592af7954a093fff (diff) | |
download | DotNetOpenAuth-cccc7a63b9abeed1f075a35a532e25d52c1d89db.zip DotNetOpenAuth-cccc7a63b9abeed1f075a35a532e25d52c1d89db.tar.gz DotNetOpenAuth-cccc7a63b9abeed1f075a35a532e25d52c1d89db.tar.bz2 |
Removes InfoCard support from the library.
InfoCard support has been removed from recent versions of Windows. It's effectively dead.
56 files changed, 4 insertions, 3773 deletions
diff --git a/nuget/DotNetOpenAuth.InfoCard.UI.nuspec b/nuget/DotNetOpenAuth.InfoCard.UI.nuspec deleted file mode 100644 index f22a52c..0000000 --- a/nuget/DotNetOpenAuth.InfoCard.UI.nuspec +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0"?> -<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> - <metadata> - <id>$identity$</id> - <version>$version$</version> - <title>DotNetOpenAuth InfoCard (ASP.NET controls)</title> - <authors>Andrew Arnott</authors> - <owners>Outercurve Foundation</owners> - <projectUrl>http://www.dotnetopenauth.net/</projectUrl> - <iconUrl>https://github.com/AArnott/dotnetopenid/raw/v3.4/doc/logo/dnoa-logo_32x32.png</iconUrl> - <licenseUrl>http://www.opensource.org/licenses/ms-pl.html</licenseUrl> - <requireLicenseAcceptance>false</requireLicenseAcceptance> - <summary>Add InfoCard login capability to ASP.NET web applications via ASP.NET web controls.</summary> - <description> - Adds an InfoCard button to your ASP.NET web application's login page via a simple ASP.NET control. - InfoCards enhance user security while mitigating phishing attacks by removing the - need for a password credential or 3rd party identity issuer entirely. - </description> - <language>en-US</language> - <dependencies> - <dependency id="DotNetOpenAuth.Core.UI" version="[$version$]" /> - <dependency id="DotNetOpenAuth.InfoCard" version="[$version$]" /> - </dependencies> - </metadata> - <files> - <file src="$OutputPath45$$signedSubPath$$identity$.dll" target="lib\net45-full\" /> - <file src="$OutputPath45$$identity$.pdb" target="lib\net45-full\" /> - <file src="$OutputPath45$$identity$.xml" target="lib\net45-full\" /> - - <file src="..\src\$Identity$\**\*.cs" target="src" exclude="..\src\$Identity$\obj\**" /> - <file src="$GeneratedAssemblyInfoSourceFile$" target="src" /> - </files> -</package>
\ No newline at end of file diff --git a/nuget/DotNetOpenAuth.InfoCard.nuspec b/nuget/DotNetOpenAuth.InfoCard.nuspec deleted file mode 100644 index 4cfcc17..0000000 --- a/nuget/DotNetOpenAuth.InfoCard.nuspec +++ /dev/null @@ -1,31 +0,0 @@ -<?xml version="1.0"?> -<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> - <metadata> - <id>$identity$</id> - <version>$version$</version> - <title>DotNetOpenAuth InfoCard</title> - <authors>Andrew Arnott</authors> - <owners>Outercurve Foundation</owners> - <projectUrl>http://www.dotnetopenauth.net/</projectUrl> - <iconUrl>https://github.com/AArnott/dotnetopenid/raw/v3.4/doc/logo/dnoa-logo_32x32.png</iconUrl> - <licenseUrl>http://www.opensource.org/licenses/ms-pl.html</licenseUrl> - <requireLicenseAcceptance>false</requireLicenseAcceptance> - <summary>Add InfoCard login capability to ASP.NET web applications.</summary> - <description> - Adds an InfoCard button to your web application's login page. - InfoCards enhance user security while mitigating phishing attacks by removing the - need for a password credential or 3rd party identity issuer entirely. - </description> - <dependencies> - <dependency id="DotNetOpenAuth.Core" version="[$version$]" /> - </dependencies> - </metadata> - <files> - <file src="$OutputPath45$$signedSubPath$$identity$.dll" target="lib\net45-full\" /> - <file src="$OutputPath45$$identity$.pdb" target="lib\net45-full\" /> - <file src="$OutputPath45$$identity$.xml" target="lib\net45-full\" /> - - <file src="..\src\$Identity$\**\*.cs" target="src" exclude="..\src\$Identity$\obj\**" /> - <file src="$GeneratedAssemblyInfoSourceFile$" target="src" /> - </files> -</package>
\ No newline at end of file diff --git a/nuget/DotNetOpenAuth.OpenIdInfoCard.UI.nuspec b/nuget/DotNetOpenAuth.OpenIdInfoCard.UI.nuspec deleted file mode 100644 index 33f8cbe..0000000 --- a/nuget/DotNetOpenAuth.OpenIdInfoCard.UI.nuspec +++ /dev/null @@ -1,32 +0,0 @@ -<?xml version="1.0"?> -<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd"> - <metadata> - <id>$identity$</id> - <version>$version$</version> - <title>DotNetOpenAuth OpenID InfoCard Relying Party ASP.NET control</title> - <authors>Andrew Arnott</authors> - <owners>Outercurve Foundation</owners> - <projectUrl>http://www.dotnetopenauth.net/</projectUrl> - <iconUrl>https://github.com/AArnott/dotnetopenid/raw/v3.4/doc/logo/dnoa-logo_32x32.png</iconUrl> - <licenseUrl>http://www.opensource.org/licenses/ms-pl.html</licenseUrl> - <requireLicenseAcceptance>false</requireLicenseAcceptance> - <summary>Allow your web site's visitors to log in using InfoCards.</summary> - <description> - Adds an InfoCard button to an OpenID relying party's login button panel. - InfoCards enhance user security while mitigating phishing attacks by removing the - need for a password credential or 3rd party identity issuer entirely. - </description> - <dependencies> - <dependency id="DotNetOpenAuth.OpenId.RelyingParty.UI" version="[$version$]" /> - <dependency id="DotNetOpenAuth.InfoCard.UI" version="[$version$]" /> - </dependencies> - </metadata> - <files> - <file src="$OutputPath45$$signedSubPath$$identity$.dll" target="lib\net45-full\" /> - <file src="$OutputPath45$$identity$.pdb" target="lib\net45-full\" /> - <file src="$OutputPath45$$identity$.xml" target="lib\net45-full\" /> - - <file src="..\src\$Identity$\**\*.cs" target="src" exclude="..\src\$Identity$\obj\**" /> - <file src="$GeneratedAssemblyInfoSourceFile$" target="src" /> - </files> -</package>
\ No newline at end of file diff --git a/nuget/DotNetOpenAuth.Ultimate.nuspec b/nuget/DotNetOpenAuth.Ultimate.nuspec index 006679f..5a96a3f 100644 --- a/nuget/DotNetOpenAuth.Ultimate.nuspec +++ b/nuget/DotNetOpenAuth.Ultimate.nuspec @@ -10,9 +10,9 @@ <iconUrl>https://github.com/AArnott/dotnetopenid/raw/v3.4/doc/logo/dnoa-logo_32x32.png</iconUrl> <licenseUrl>http://www.opensource.org/licenses/ms-pl.html</licenseUrl> <requireLicenseAcceptance>false</requireLicenseAcceptance> - <summary>OpenID, OAuth, & InfoCard library for web and desktop applications.</summary> + <summary>OpenID & OAuth library for web and desktop applications.</summary> <description> - A single assembly that adds OpenID 1.1/2.0, OAuth 1.0(a)/2.0, & InfoCard authentication and authorization functionality for client and server applications. + A single assembly that adds OpenID 1.1/2.0 and OAuth 1.0(a)/2.0 authentication and authorization functionality for client and server applications. This allows your (web) application to issue identities or accept issued identites from other web applications, and even access your users' data on other services. </description> <language>en-US</language> diff --git a/nuget/DotNetOpenAuth.nuspec b/nuget/DotNetOpenAuth.nuspec index 2895b00..24862a0 100644 --- a/nuget/DotNetOpenAuth.nuspec +++ b/nuget/DotNetOpenAuth.nuspec @@ -10,9 +10,9 @@ <iconUrl>https://github.com/AArnott/dotnetopenid/raw/v3.4/doc/logo/dnoa-logo_32x32.png</iconUrl> <licenseUrl>http://www.opensource.org/licenses/ms-pl.html</licenseUrl> <requireLicenseAcceptance>false</requireLicenseAcceptance> - <summary>OpenID, OAuth, & InfoCard library for web and desktop applications.</summary> + <summary>OpenID and OAuth library for web and desktop applications.</summary> <description> - Add OpenID 1.1/2.0, OAuth 1.0(a), & InfoCard authentication and authorization functionality for client and server applications. + Add OpenID 1.1/2.0 and OAuth 1.0(a)/2.0 authentication and authorization functionality for client and server applications. This allows your (web) application to issue identities or accept issued identites from other web applications, and even access your users' data on other services. </description> <language>en-US</language> @@ -21,7 +21,6 @@ <dependency id="DotNetOpenAuth.OpenId.Provider.UI" version="[$version$]" /> <dependency id="DotNetOpenAuth.OAuth.Consumer" version="[$version$]" /> <dependency id="DotNetOpenAuth.OAuth.ServiceProvider" version="[$version$]" /> - <dependency id="DotNetOpenAuth.OpenIdInfoCard.UI" version="[$version$]" /> <dependency id="DotNetOpenAuth.OpenIdOAuth" version="[$version$]" /> <dependency id="DotNetOpenAuth.OAuth2.Client.UI" version="[$version$]" /> diff --git a/samples/DotNetOpenAuth.ApplicationBlock/DotNetOpenAuth.ApplicationBlock.csproj b/samples/DotNetOpenAuth.ApplicationBlock/DotNetOpenAuth.ApplicationBlock.csproj index 5f97992..27c8200 100644 --- a/samples/DotNetOpenAuth.ApplicationBlock/DotNetOpenAuth.ApplicationBlock.csproj +++ b/samples/DotNetOpenAuth.ApplicationBlock/DotNetOpenAuth.ApplicationBlock.csproj @@ -135,10 +135,6 @@ </BootstrapperPackage> </ItemGroup> <ItemGroup> - <ProjectReference Include="..\..\src\DotNetOpenAuth.InfoCard\DotNetOpenAuth.InfoCard.csproj"> - <Project>{408D10B8-34BA-4CBD-B7AA-FEB1907ABA4C}</Project> - <Name>DotNetOpenAuth.InfoCard</Name> - </ProjectReference> <ProjectReference Include="..\..\src\DotNetOpenAuth.Core\DotNetOpenAuth.Core.csproj"> <Project>{60426312-6AE5-4835-8667-37EDEA670222}</Project> <Name>DotNetOpenAuth.Core</Name> 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} diff --git a/tools/DotNetOpenAuth.props b/tools/DotNetOpenAuth.props index e174169..31334c3 100644 --- a/tools/DotNetOpenAuth.props +++ b/tools/DotNetOpenAuth.props @@ -59,9 +59,6 @@ DotNetOpenAuth.OAuth; DotNetOpenAuth.OAuth.Consumer; DotNetOpenAuth.OAuth.ServiceProvider; - DotNetOpenAuth.InfoCard; - DotNetOpenAuth.InfoCard.UI; - DotNetOpenAuth.OpenIdInfoCard.UI; DotNetOpenAuth.OpenIdOAuth; " /> <ProductProjectNames Include=" |