summaryrefslogtreecommitdiffstats
path: root/projecttemplates/WebFormsRelyingParty
diff options
context:
space:
mode:
authorAndrew Arnott <andrewarnott@gmail.com>2010-01-08 17:14:28 -0800
committerAndrew Arnott <andrewarnott@gmail.com>2010-01-08 17:14:28 -0800
commit04731f1c419cba207a680af08bb752d9599d8145 (patch)
tree685aa2a6b985dbb3cc7e7979e14dd6701135be52 /projecttemplates/WebFormsRelyingParty
parentac387777ab361e39236df0138f19f4f7dd9da2f5 (diff)
parent23aa694f3850fcfdc9caad053747d3cf6ff78800 (diff)
downloadDotNetOpenAuth-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')
-rw-r--r--projecttemplates/WebFormsRelyingParty/LoginFrame.aspx2
-rw-r--r--projecttemplates/WebFormsRelyingParty/LoginFrame.aspx.cs53
-rw-r--r--projecttemplates/WebFormsRelyingParty/Members/AccountInfo.aspx4
-rw-r--r--projecttemplates/WebFormsRelyingParty/Web.config2
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