diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2009-11-30 07:27:18 -0800 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2009-11-30 07:27:18 -0800 |
commit | 860f379d38501e56dcea207f206bf7e8c9042199 (patch) | |
tree | c738885351fcccee47755e6863e4673eef5d50fc | |
parent | acce40c44d4a0f0ea95ca5ad671ce12dcf24cb7d (diff) | |
download | DotNetOpenAuth-860f379d38501e56dcea207f206bf7e8c9042199.zip DotNetOpenAuth-860f379d38501e56dcea207f206bf7e8c9042199.tar.gz DotNetOpenAuth-860f379d38501e56dcea207f206bf7e8c9042199.tar.bz2 |
Added sample Google Apps login page.
8 files changed, 92 insertions, 5 deletions
diff --git a/samples/OpenIdProviderWebForms/Web.config b/samples/OpenIdProviderWebForms/Web.config index 159dcd1..6d24ee6 100644 --- a/samples/OpenIdProviderWebForms/Web.config +++ b/samples/OpenIdProviderWebForms/Web.config @@ -96,9 +96,9 @@ </authentication> <customErrors mode="RemoteOnly"/> <!-- Trust level discussion: - Full: everything works + Full: everything works (this is required for Google Apps for Domains support) High: TRACE compilation symbol must NOT be defined - Medium: doesn't work unless originUrl=".*" or WebPermission.Connect is extended. + Medium: doesn't work unless originUrl=".*" or WebPermission.Connect is extended, and Google Apps doesn't work. Low: doesn't work because WebPermission.Connect is denied. --> <trust level="Medium" originUrl=".*"/> diff --git a/samples/OpenIdRelyingPartyWebForms/OpenIdRelyingPartyWebForms.csproj b/samples/OpenIdRelyingPartyWebForms/OpenIdRelyingPartyWebForms.csproj index 6f5df5c..4d57a36 100644 --- a/samples/OpenIdRelyingPartyWebForms/OpenIdRelyingPartyWebForms.csproj +++ b/samples/OpenIdRelyingPartyWebForms/OpenIdRelyingPartyWebForms.csproj @@ -101,6 +101,13 @@ <Compile Include="Code\InMemoryTokenManager.cs" /> <Compile Include="Code\State.cs" /> <Compile Include="Code\TracePageAppender.cs" /> + <Compile Include="loginGoogleApps.aspx.cs"> + <DependentUpon>loginGoogleApps.aspx</DependentUpon> + <SubType>ASPXCodeBehind</SubType> + </Compile> + <Compile Include="loginGoogleApps.aspx.designer.cs"> + <DependentUpon>loginGoogleApps.aspx</DependentUpon> + </Compile> <Compile Include="loginPlusOAuthSampleOP.aspx.cs"> <DependentUpon>loginPlusOAuthSampleOP.aspx</DependentUpon> <SubType>ASPXCodeBehind</SubType> @@ -176,6 +183,7 @@ <Content Include="xrds.aspx" /> </ItemGroup> <ItemGroup> + <Content Include="loginGoogleApps.aspx" /> <Content Include="loginPlusOAuthSampleOP.aspx" /> <Content Include="images\attention.png" /> <Content Include="images\dotnetopenid_tiny.gif" /> diff --git a/samples/OpenIdRelyingPartyWebForms/Web.config b/samples/OpenIdRelyingPartyWebForms/Web.config index c48c198..cb498ba 100644 --- a/samples/OpenIdRelyingPartyWebForms/Web.config +++ b/samples/OpenIdRelyingPartyWebForms/Web.config @@ -65,9 +65,9 @@ </authentication> <trace enabled="false" writeToDiagnosticsTrace="true" /> <!-- Trust level discussion: - Full: everything works + Full: everything works (this is required for Google Apps for Domains support) High: TRACE compilation symbol must NOT be defined - Medium: doesn't work unless originUrl=".*" or WebPermission.Connect is extended. + Medium: doesn't work unless originUrl=".*" or WebPermission.Connect is extended, and Google Apps doesn't work. Low: doesn't work because WebPermission.Connect is denied. --> <trust level="Medium" originUrl=".*"/> diff --git a/samples/OpenIdRelyingPartyWebForms/login.aspx b/samples/OpenIdRelyingPartyWebForms/login.aspx index d0cdb1a..efa2052 100644 --- a/samples/OpenIdRelyingPartyWebForms/login.aspx +++ b/samples/OpenIdRelyingPartyWebForms/login.aspx @@ -21,6 +21,7 @@ </asp:CheckBoxList> <p>Try the PPID identifier functionality against the OpenIDProviderMvc sample.</p> </fieldset> + <p><a href="loginGoogleApps.aspx">Log in using Google Apps for Domains</a>. </p> <p> <rp:OpenIdButton runat="server" ImageUrl="~/images/yahoo.png" Text="Login with Yahoo!" ID="yahooLoginButton" Identifier="https://me.yahoo.com/" OnLoggingIn="OpenIdLogin1_LoggingIn" OnLoggedIn="OpenIdLogin1_LoggedIn" /> diff --git a/samples/OpenIdRelyingPartyWebForms/loginGoogleApps.aspx b/samples/OpenIdRelyingPartyWebForms/loginGoogleApps.aspx new file mode 100644 index 0000000..3e9eb05 --- /dev/null +++ b/samples/OpenIdRelyingPartyWebForms/loginGoogleApps.aspx @@ -0,0 +1,15 @@ +<%@ Page Language="C#" AutoEventWireup="True" CodeBehind="loginGoogleApps.aspx.cs" + Inherits="OpenIdRelyingPartyWebForms.loginGoogleApps" ValidateRequest="false" + MasterPageFile="~/Site.Master" %> + +<%@ Register Assembly="DotNetOpenAuth" Namespace="DotNetOpenAuth.OpenId.RelyingParty" + TagPrefix="rp" %> +<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="Main"> + <rp:OpenIdLogin ID="OpenIdLogin1" runat="server" ExampleUrl="yourname@yourdomain.com" + TabIndex="1" LabelText="Google Apps email address or domain:" + RegisterVisible="False" onloggedin="OpenIdLogin1_LoggedIn" /> + <p> + <b>NOTE:</b> Full trust permissions are required. Modify web.config to allow full + trust before trying this sample. + </p> +</asp:Content> diff --git a/samples/OpenIdRelyingPartyWebForms/loginGoogleApps.aspx.cs b/samples/OpenIdRelyingPartyWebForms/loginGoogleApps.aspx.cs new file mode 100644 index 0000000..c93f972 --- /dev/null +++ b/samples/OpenIdRelyingPartyWebForms/loginGoogleApps.aspx.cs @@ -0,0 +1,38 @@ +namespace OpenIdRelyingPartyWebForms { + using System; + using System.Collections.Generic; + using System.Linq; + using System.Web; + using System.Web.UI; + using System.Web.UI.WebControls; + using DotNetOpenAuth.OpenId; + using DotNetOpenAuth.OpenId.RelyingParty; + + public partial class loginGoogleApps : System.Web.UI.Page { + private static readonly HostMetaDiscoveryService GoogleAppsDiscovery = new HostMetaDiscoveryService { + UseGoogleHostedHostMeta = true, + }; + + private static readonly OpenIdRelyingParty relyingParty; + + static loginGoogleApps() { + relyingParty = new OpenIdRelyingParty(); + + // We don't necessarily HAVE to clear the other discovery services, but + // because host-meta discovery (particularly with Google) can cause ambiguity + // in knowing which discovered endpoints are authoritative. Because of the + // extra security concerns it's a good idea to have a separate box + relyingParty.DiscoveryServices.Clear(); + relyingParty.DiscoveryServices.Insert(0, GoogleAppsDiscovery); // it should be first, if we don't clear it + } + + protected void Page_Load(object sender, EventArgs e) { + this.OpenIdLogin1.RelyingParty = relyingParty; + this.OpenIdLogin1.Focus(); + } + + protected void OpenIdLogin1_LoggedIn(object sender, OpenIdEventArgs e) { + State.FriendlyLoginName = e.Response.FriendlyIdentifierForDisplay; + } + } +} diff --git a/samples/OpenIdRelyingPartyWebForms/loginGoogleApps.aspx.designer.cs b/samples/OpenIdRelyingPartyWebForms/loginGoogleApps.aspx.designer.cs new file mode 100644 index 0000000..6224dbb --- /dev/null +++ b/samples/OpenIdRelyingPartyWebForms/loginGoogleApps.aspx.designer.cs @@ -0,0 +1,25 @@ +//------------------------------------------------------------------------------ +// <auto-generated> +// This code was generated by a tool. +// Runtime Version:2.0.50727.4927 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// </auto-generated> +//------------------------------------------------------------------------------ + +namespace OpenIdRelyingPartyWebForms { + + + public partial class loginGoogleApps { + + /// <summary> + /// OpenIdLogin1 control. + /// </summary> + /// <remarks> + /// Auto-generated field. + /// To modify move field declaration from designer file to code-behind file. + /// </remarks> + protected global::DotNetOpenAuth.OpenId.RelyingParty.OpenIdLogin OpenIdLogin1; + } +} diff --git a/src/DotNetOpenAuth/OpenId/HostMetaDiscoveryService.cs b/src/DotNetOpenAuth/OpenId/HostMetaDiscoveryService.cs index f4b9db2..498d964 100644 --- a/src/DotNetOpenAuth/OpenId/HostMetaDiscoveryService.cs +++ b/src/DotNetOpenAuth/OpenId/HostMetaDiscoveryService.cs @@ -25,7 +25,7 @@ namespace DotNetOpenAuth.OpenId { using DotNetOpenAuth.Yadis; /// <summary> - /// The discovery service to support Google Apps for Domains' proprietary discovery. + /// The discovery service to support host-meta based discovery, such as Google Apps for Domains. /// </summary> /// <remarks> /// The spec for this discovery mechanism can be found at: |