diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2010-01-08 17:14:28 -0800 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2010-01-08 17:14:28 -0800 |
commit | 04731f1c419cba207a680af08bb752d9599d8145 (patch) | |
tree | 685aa2a6b985dbb3cc7e7979e14dd6701135be52 /projecttemplates/WebFormsRelyingParty | |
parent | ac387777ab361e39236df0138f19f4f7dd9da2f5 (diff) | |
parent | 23aa694f3850fcfdc9caad053747d3cf6ff78800 (diff) | |
download | DotNetOpenAuth-04731f1c419cba207a680af08bb752d9599d8145.zip DotNetOpenAuth-04731f1c419cba207a680af08bb752d9599d8145.tar.gz DotNetOpenAuth-04731f1c419cba207a680af08bb752d9599d8145.tar.bz2 |
Merge branch 'master' into master-Dev10
Conflicts:
build.proj
src/DotNetOpenAuth.sln
Diffstat (limited to 'projecttemplates/WebFormsRelyingParty')
4 files changed, 8 insertions, 53 deletions
diff --git a/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx b/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx index a13abb5..36a1bb0 100644 --- a/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx +++ b/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx @@ -39,7 +39,7 @@ <rp:SelectorProviderButton OPIdentifier="https://me.yahoo.com/" Image="images/yahoo.gif" /> <rp:SelectorProviderButton OPIdentifier="https://www.google.com/accounts/o8/id" Image="images/google.gif" /> <rp:SelectorInfoCardButton> - <InfoCardSelector> + <InfoCardSelector Issuer=""> <ClaimsRequested> <ic:ClaimType Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" IsOptional="false" /> <ic:ClaimType Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname" IsOptional="true" /> diff --git a/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx.cs b/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx.cs index 152884e..fbd16e7 100644 --- a/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx.cs +++ b/projecttemplates/WebFormsRelyingParty/LoginFrame.aspx.cs @@ -33,13 +33,11 @@ } protected void openIdSelector_LoggedIn(object sender, OpenIdEventArgs e) { - bool trustedEmail = Policies.ProviderEndpointsProvidingTrustedEmails.Contains(e.Response.Provider.Uri); - this.LoginUser(e.ClaimedIdentifier, e.Response.FriendlyIdentifierForDisplay, e.Response.GetExtension<ClaimsResponse>(), null, trustedEmail); + this.LoginUser(RelyingPartyLogic.User.ProcessUserLogin(e.Response)); } protected void openIdSelector_ReceivedToken(object sender, ReceivedTokenEventArgs e) { - bool trustedEmail = false; // we don't trust InfoCard email addresses, since these can be self-issued. - this.LoginUser(AuthenticationToken.SynthesizeClaimedIdentifierFromInfoCard(e.Token.UniqueId), e.Token.SiteSpecificId, null, e.Token, trustedEmail); + this.LoginUser(RelyingPartyLogic.User.ProcessUserLogin(e.Token)); } protected void openIdSelector_Failed(object sender, OpenIdEventArgs e) { @@ -54,52 +52,7 @@ this.errorPanel.Visible = true; } - private void LoginUser(string claimedIdentifier, string friendlyIdentifier, ClaimsResponse claims, Token samlToken, bool trustedEmail) { - // Create an account for this user if we don't already have one. - AuthenticationToken openidToken = Database.DataContext.AuthenticationTokens.FirstOrDefault(token => token.ClaimedIdentifier == claimedIdentifier); - if (openidToken == null) { - // this is a user we haven't seen before. - User user = new User(); - openidToken = new AuthenticationToken { - ClaimedIdentifier = claimedIdentifier, - FriendlyIdentifier = friendlyIdentifier, - }; - user.AuthenticationTokens.Add(openidToken); - - // Gather information about the user if it's available. - if (claims != null) { - if (!string.IsNullOrEmpty(claims.Email)) { - user.EmailAddress = claims.Email; - user.EmailAddressVerified = trustedEmail; - } - if (!string.IsNullOrEmpty(claims.FullName)) { - if (claims.FullName.IndexOf(' ') > 0) { - user.FirstName = claims.FullName.Substring(0, claims.FullName.IndexOf(' ')).Trim(); - user.LastName = claims.FullName.Substring(claims.FullName.IndexOf(' ')).Trim(); - } else { - user.FirstName = claims.FullName; - } - } - } else if (samlToken != null) { - string email, givenName, surname; - if (samlToken.Claims.TryGetValue(ClaimTypes.Email, out email)) { - user.EmailAddress = email; - user.EmailAddressVerified = trustedEmail; - } - if (samlToken.Claims.TryGetValue(ClaimTypes.GivenName, out givenName)) { - user.FirstName = givenName; - } - if (samlToken.Claims.TryGetValue(ClaimTypes.Surname, out surname)) { - user.LastName = surname; - } - } - - Database.DataContext.AddToUsers(user); - } else { - openidToken.UsageCount++; - openidToken.LastUsedUtc = DateTime.UtcNow; - } - + private void LoginUser(AuthenticationToken openidToken) { bool persistentCookie = false; if (string.IsNullOrEmpty(this.Request.QueryString["ReturnUrl"])) { FormsAuthentication.SetAuthCookie(openidToken.ClaimedIdentifier, persistentCookie); diff --git a/projecttemplates/WebFormsRelyingParty/Members/AccountInfo.aspx b/projecttemplates/WebFormsRelyingParty/Members/AccountInfo.aspx index 4b7d1da..54fcc59 100644 --- a/projecttemplates/WebFormsRelyingParty/Members/AccountInfo.aspx +++ b/projecttemplates/WebFormsRelyingParty/Members/AccountInfo.aspx @@ -133,7 +133,9 @@ <Buttons> <rp:SelectorProviderButton OPIdentifier="https://me.yahoo.com/" Image="~/images/yahoo.gif" /> <rp:SelectorProviderButton OPIdentifier="https://www.google.com/accounts/o8/id" Image="~/images/google.gif" /> - <rp:SelectorInfoCardButton /> + <rp:SelectorInfoCardButton> + <InfoCardSelector Issuer="" /> + </rp:SelectorInfoCardButton> <rp:SelectorOpenIdButton Image="~/images/openid.gif" /> </Buttons> </rp:OpenIdSelector> diff --git a/projecttemplates/WebFormsRelyingParty/Web.config b/projecttemplates/WebFormsRelyingParty/Web.config index 9214ee8..2092ba0 100644 --- a/projecttemplates/WebFormsRelyingParty/Web.config +++ b/projecttemplates/WebFormsRelyingParty/Web.config @@ -166,7 +166,7 @@ ASP.NET to identify an incoming user. --> <authentication mode="Forms"> - <forms loginUrl="~/login.aspx" /> + <forms loginUrl="~/login.aspx" name="WebFormsRelyingParty" /> </authentication> <!-- The <customErrors> section enables configuration |