Browse Source

Removing auth stuff to lighten test

Former-commit-id: 69ca89e8a6ba95cb47197930ec4d9aa01db9f9f5
pull/17/head
James South 12 years ago
parent
commit
43c45ae90b
  1. 47
      src/TestWebsites/WebForms/Account/Login.aspx
  2. 24
      src/TestWebsites/WebForms/Account/Login.aspx.cs
  3. 35
      src/TestWebsites/WebForms/Account/Login.aspx.designer.cs
  4. 126
      src/TestWebsites/WebForms/Account/Manage.aspx
  5. 95
      src/TestWebsites/WebForms/Account/Manage.aspx.cs
  6. 66
      src/TestWebsites/WebForms/Account/Manage.aspx.designer.cs
  7. 21
      src/TestWebsites/WebForms/Account/OpenAuthProviders.ascx
  8. 43
      src/TestWebsites/WebForms/Account/OpenAuthProviders.ascx.cs
  9. 27
      src/TestWebsites/WebForms/Account/OpenAuthProviders.ascx.designer.cs
  10. 62
      src/TestWebsites/WebForms/Account/Register.aspx
  11. 31
      src/TestWebsites/WebForms/Account/Register.aspx.cs
  12. 35
      src/TestWebsites/WebForms/Account/Register.aspx.designer.cs
  13. 35
      src/TestWebsites/WebForms/Account/RegisterExternalLogin.aspx
  14. 151
      src/TestWebsites/WebForms/Account/RegisterExternalLogin.aspx.cs
  15. 39
      src/TestWebsites/WebForms/Account/RegisterExternalLogin.aspx.designer.cs
  16. 12
      src/TestWebsites/WebForms/Account/Web.config
  17. 31
      src/TestWebsites/WebForms/App_Start/AuthConfig.cs
  18. 1
      src/TestWebsites/WebForms/Global.asax.cs
  19. 76
      src/TestWebsites/WebForms/Test_Website_Webforms.csproj
  20. 8
      src/TestWebsites/WebForms/packages.config

47
src/TestWebsites/WebForms/Account/Login.aspx

@ -1,47 +0,0 @@
<%@ Page Title="Log in" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Login.aspx.cs" Inherits="Test_Website_Webforms_NET45.Account.Login" %>
<%@ Register Src="~/Account/OpenAuthProviders.ascx" TagPrefix="uc" TagName="OpenAuthProviders" %>
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<hgroup class="title">
<h1><%: Title %>.</h1>
</hgroup>
<section id="loginForm">
<h2>Use a local account to log in.</h2>
<asp:Login runat="server" ViewStateMode="Disabled" RenderOuterTable="false">
<LayoutTemplate>
<p class="validation-summary-errors">
<asp:Literal runat="server" ID="FailureText" />
</p>
<fieldset>
<legend>Log in Form</legend>
<ol>
<li>
<asp:Label runat="server" AssociatedControlID="UserName">User name</asp:Label>
<asp:TextBox runat="server" ID="UserName" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="UserName" CssClass="field-validation-error" ErrorMessage="The user name field is required." />
</li>
<li>
<asp:Label runat="server" AssociatedControlID="Password">Password</asp:Label>
<asp:TextBox runat="server" ID="Password" TextMode="Password" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="Password" CssClass="field-validation-error" ErrorMessage="The password field is required." />
</li>
<li>
<asp:CheckBox runat="server" ID="RememberMe" />
<asp:Label runat="server" AssociatedControlID="RememberMe" CssClass="checkbox">Remember me?</asp:Label>
</li>
</ol>
<asp:Button runat="server" CommandName="Login" Text="Log in" />
</fieldset>
</LayoutTemplate>
</asp:Login>
<p>
<asp:HyperLink runat="server" ID="RegisterHyperLink" ViewStateMode="Disabled">Register</asp:HyperLink>
if you don't have an account.
</p>
</section>
<section id="socialLoginForm">
<h2>Use another service to log in.</h2>
<uc:OpenAuthProviders runat="server" ID="OpenAuthLogin" />
</section>
</asp:Content>

24
src/TestWebsites/WebForms/Account/Login.aspx.cs

@ -1,24 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace Test_Website_Webforms_NET45.Account
{
public partial class Login : Page
{
protected void Page_Load(object sender, EventArgs e)
{
RegisterHyperLink.NavigateUrl = "Register";
OpenAuthLogin.ReturnUrl = Request.QueryString["ReturnUrl"];
var returnUrl = HttpUtility.UrlEncode(Request.QueryString["ReturnUrl"]);
if (!String.IsNullOrEmpty(returnUrl))
{
RegisterHyperLink.NavigateUrl += "?ReturnUrl=" + returnUrl;
}
}
}
}

35
src/TestWebsites/WebForms/Account/Login.aspx.designer.cs

@ -1,35 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Test_Website_Webforms_NET45.Account
{
public partial class Login
{
/// <summary>
/// RegisterHyperLink control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.HyperLink RegisterHyperLink;
/// <summary>
/// OpenAuthLogin control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::Test_Website_Webforms_NET45.Account.OpenAuthProviders OpenAuthLogin;
}
}

126
src/TestWebsites/WebForms/Account/Manage.aspx

@ -1,126 +0,0 @@
<%@ Page Title="Manage Account" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Manage.aspx.cs" Inherits="Test_Website_Webforms_NET45.Account.Manage" %>
<%@ Register Src="~/Account/OpenAuthProviders.ascx" TagPrefix="uc" TagName="OpenAuthProviders" %>
<asp:Content ContentPlaceHolderID="MainContent" runat="server">
<hgroup class="title">
<h1><%: Title %>.</h1>
</hgroup>
<section id="passwordForm">
<asp:PlaceHolder runat="server" ID="successMessage" Visible="false" ViewStateMode="Disabled">
<p class="message-success"><%: SuccessMessage %></p>
</asp:PlaceHolder>
<p>You're logged in as <strong><%: User.Identity.Name %></strong>.</p>
<asp:PlaceHolder runat="server" ID="setPassword" Visible="false">
<p>
You do not have a local password for this site. Add a local
password so you can log in without an external login.
</p>
<fieldset>
<legend>Set Password Form</legend>
<ol>
<li>
<asp:Label runat="server" AssociatedControlID="password">Password</asp:Label>
<asp:TextBox runat="server" ID="password" TextMode="Password" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="password"
CssClass="field-validation-error" ErrorMessage="The password field is required."
Display="Dynamic" ValidationGroup="SetPassword" />
<asp:ModelErrorMessage runat="server" ModelStateKey="NewPassword" AssociatedControlID="password"
CssClass="field-validation-error" SetFocusOnError="true" />
</li>
<li>
<asp:Label runat="server" AssociatedControlID="confirmPassword">Confirm password</asp:Label>
<asp:TextBox runat="server" ID="confirmPassword" TextMode="Password" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="confirmPassword"
CssClass="field-validation-error" Display="Dynamic" ErrorMessage="The confirm password field is required."
ValidationGroup="SetPassword" />
<asp:CompareValidator runat="server" ControlToCompare="Password" ControlToValidate="confirmPassword"
CssClass="field-validation-error" Display="Dynamic" ErrorMessage="The password and confirmation password do not match."
ValidationGroup="SetPassword" />
</li>
</ol>
<asp:Button runat="server" Text="Set Password" ValidationGroup="SetPassword" OnClick="setPassword_Click" />
</fieldset>
</asp:PlaceHolder>
<asp:PlaceHolder runat="server" ID="changePassword" Visible="false">
<h3>Change password</h3>
<asp:ChangePassword runat="server" CancelDestinationPageUrl="~/" ViewStateMode="Disabled" RenderOuterTable="false" SuccessPageUrl="Manage?m=ChangePwdSuccess">
<ChangePasswordTemplate>
<p class="validation-summary-errors">
<asp:Literal runat="server" ID="FailureText" />
</p>
<fieldset class="changePassword">
<legend>Change password details</legend>
<ol>
<li>
<asp:Label runat="server" ID="CurrentPasswordLabel" AssociatedControlID="CurrentPassword">Current password</asp:Label>
<asp:TextBox runat="server" ID="CurrentPassword" CssClass="passwordEntry" TextMode="Password" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="CurrentPassword"
CssClass="field-validation-error" ErrorMessage="The current password field is required."
ValidationGroup="ChangePassword" />
</li>
<li>
<asp:Label runat="server" ID="NewPasswordLabel" AssociatedControlID="NewPassword">New password</asp:Label>
<asp:TextBox runat="server" ID="NewPassword" CssClass="passwordEntry" TextMode="Password" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="NewPassword"
CssClass="field-validation-error" ErrorMessage="The new password is required."
ValidationGroup="ChangePassword" />
</li>
<li>
<asp:Label runat="server" ID="ConfirmNewPasswordLabel" AssociatedControlID="ConfirmNewPassword">Confirm new password</asp:Label>
<asp:TextBox runat="server" ID="ConfirmNewPassword" CssClass="passwordEntry" TextMode="Password" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="ConfirmNewPassword"
CssClass="field-validation-error" Display="Dynamic" ErrorMessage="Confirm new password is required."
ValidationGroup="ChangePassword" />
<asp:CompareValidator runat="server" ControlToCompare="NewPassword" ControlToValidate="ConfirmNewPassword"
CssClass="field-validation-error" Display="Dynamic" ErrorMessage="The new password and confirmation password do not match."
ValidationGroup="ChangePassword" />
</li>
</ol>
<asp:Button runat="server" CommandName="ChangePassword" Text="Change password" ValidationGroup="ChangePassword" />
</fieldset>
</ChangePasswordTemplate>
</asp:ChangePassword>
</asp:PlaceHolder>
</section>
<section id="externalLoginsForm">
<asp:ListView runat="server"
ItemType="Microsoft.AspNet.Membership.OpenAuth.OpenAuthAccountData"
SelectMethod="GetExternalLogins" DeleteMethod="RemoveExternalLogin" DataKeyNames="ProviderName,ProviderUserId">
<LayoutTemplate>
<h3>Registered external logins</h3>
<table>
<thead><tr><th>Service</th><th>User Name</th><th>Last Used</th><th>&nbsp;</th></tr></thead>
<tbody>
<tr runat="server" id="itemPlaceholder"></tr>
</tbody>
</table>
</LayoutTemplate>
<ItemTemplate>
<tr>
<td><%#: Item.ProviderDisplayName %></td>
<td><%#: Item.ProviderUserName %></td>
<td><%#: ConvertToDisplayDateTime(Item.LastUsedUtc) %></td>
<td>
<asp:Button runat="server" Text="Remove" CommandName="Delete" CausesValidation="false"
ToolTip='<%# "Remove this " + Item.ProviderDisplayName + " login from your account" %>'
Visible="<%# CanRemoveExternalLogins %>" />
</td>
</tr>
</ItemTemplate>
</asp:ListView>
<h3>Add an external login</h3>
<uc:OpenAuthProviders runat="server" ReturnUrl="~/Account/Manage" />
</section>
</asp:Content>

95
src/TestWebsites/WebForms/Account/Manage.aspx.cs

@ -1,95 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.AspNet.Membership.OpenAuth;
namespace Test_Website_Webforms_NET45.Account
{
public partial class Manage : System.Web.UI.Page
{
protected string SuccessMessage
{
get;
private set;
}
protected bool CanRemoveExternalLogins
{
get;
private set;
}
protected void Page_Load()
{
if (!IsPostBack)
{
// Determine the sections to render
var hasLocalPassword = OpenAuth.HasLocalPassword(User.Identity.Name);
setPassword.Visible = !hasLocalPassword;
changePassword.Visible = hasLocalPassword;
CanRemoveExternalLogins = hasLocalPassword;
// Render success message
var message = Request.QueryString["m"];
if (message != null)
{
// Strip the query string from action
Form.Action = ResolveUrl("~/Account/Manage");
SuccessMessage =
message == "ChangePwdSuccess" ? "Your password has been changed."
: message == "SetPwdSuccess" ? "Your password has been set."
: message == "RemoveLoginSuccess" ? "The external login was removed."
: String.Empty;
successMessage.Visible = !String.IsNullOrEmpty(SuccessMessage);
}
}
}
protected void setPassword_Click(object sender, EventArgs e)
{
if (IsValid)
{
var result = OpenAuth.AddLocalPassword(User.Identity.Name, password.Text);
if (result.IsSuccessful)
{
Response.Redirect("~/Account/Manage?m=SetPwdSuccess");
}
else
{
ModelState.AddModelError("NewPassword", result.ErrorMessage);
}
}
}
public IEnumerable<OpenAuthAccountData> GetExternalLogins()
{
var accounts = OpenAuth.GetAccountsForUser(User.Identity.Name);
CanRemoveExternalLogins = CanRemoveExternalLogins || accounts.Count() > 1;
return accounts;
}
public void RemoveExternalLogin(string providerName, string providerUserId)
{
var m = OpenAuth.DeleteAccount(User.Identity.Name, providerName, providerUserId)
? "?m=RemoveLoginSuccess"
: String.Empty;
Response.Redirect("~/Account/Manage" + m);
}
protected static string ConvertToDisplayDateTime(DateTime? utcDateTime)
{
// You can change this method to convert the UTC date time into the desired display
// offset and format. Here we're converting it to the server timezone and formatting
// as a short date and a long time string, using the current thread culture.
return utcDateTime.HasValue ? utcDateTime.Value.ToLocalTime().ToString("G") : "[never]";
}
}
}

66
src/TestWebsites/WebForms/Account/Manage.aspx.designer.cs

@ -1,66 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Test_Website_Webforms_NET45.Account
{
public partial class Manage
{
/// <summary>
/// successMessage control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.PlaceHolder successMessage;
/// <summary>
/// setPassword control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.PlaceHolder setPassword;
/// <summary>
/// password control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox password;
/// <summary>
/// confirmPassword control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox confirmPassword;
/// <summary>
/// changePassword control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.PlaceHolder changePassword;
}
}

21
src/TestWebsites/WebForms/Account/OpenAuthProviders.ascx

@ -1,21 +0,0 @@
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="OpenAuthProviders.ascx.cs" Inherits="Test_Website_Webforms_NET45.Account.OpenAuthProviders" %>
<fieldset class="open-auth-providers">
<legend>Log in using another service</legend>
<asp:ListView runat="server" ID="providerDetails" ItemType="Microsoft.AspNet.Membership.OpenAuth.ProviderDetails"
SelectMethod="GetProviderNames" ViewStateMode="Disabled">
<ItemTemplate>
<button type="submit" name="provider" value="<%#: Item.ProviderName %>"
title="Log in using your <%#: Item.ProviderDisplayName %> account.">
<%#: Item.ProviderDisplayName %>
</button>
</ItemTemplate>
<EmptyDataTemplate>
<div class="message-info">
<p>There are no external authentication services configured. See <a href="http://go.microsoft.com/fwlink/?LinkId=252803">this article</a> for details on setting up this ASP.NET application to support logging in via external services.</p>
</div>
</EmptyDataTemplate>
</asp:ListView>
</fieldset>

43
src/TestWebsites/WebForms/Account/OpenAuthProviders.ascx.cs

@ -1,43 +0,0 @@
using System;
using System.Collections.Generic;
using System.Web;
using Microsoft.AspNet.Membership.OpenAuth;
namespace Test_Website_Webforms_NET45.Account
{
public partial class OpenAuthProviders : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
var provider = Request.Form["provider"];
if (provider == null)
{
return;
}
var redirectUrl = "~/Account/RegisterExternalLogin";
if (!String.IsNullOrEmpty(ReturnUrl))
{
var resolvedReturnUrl = ResolveUrl(ReturnUrl);
redirectUrl += "?ReturnUrl=" + HttpUtility.UrlEncode(resolvedReturnUrl);
}
OpenAuth.RequestAuthentication(provider, redirectUrl);
}
}
public string ReturnUrl { get; set; }
public IEnumerable<ProviderDetails> GetProviderNames()
{
return OpenAuth.AuthenticationClients.GetAll();
}
}
}

27
src/TestWebsites/WebForms/Account/OpenAuthProviders.ascx.designer.cs

@ -1,27 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Test_Website_Webforms_NET45.Account
{
public partial class OpenAuthProviders
{
/// <summary>
/// providerDetails control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.ListView providerDetails;
}
}

62
src/TestWebsites/WebForms/Account/Register.aspx

@ -1,62 +0,0 @@
<%@ Page Title="Register" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Register.aspx.cs" Inherits="Test_Website_Webforms_NET45.Account.Register" %>
<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
<hgroup class="title">
<h1><%: Title %>.</h1>
<h2>Use the form below to create a new account.</h2>
</hgroup>
<asp:CreateUserWizard runat="server" ID="RegisterUser" ViewStateMode="Disabled" OnCreatedUser="RegisterUser_CreatedUser">
<LayoutTemplate>
<asp:PlaceHolder runat="server" ID="wizardStepPlaceholder" />
<asp:PlaceHolder runat="server" ID="navigationPlaceholder" />
</LayoutTemplate>
<WizardSteps>
<asp:CreateUserWizardStep runat="server" ID="RegisterUserWizardStep">
<ContentTemplate>
<p class="message-info">
Passwords are required to be a minimum of <%: Membership.MinRequiredPasswordLength %> characters in length.
</p>
<p class="validation-summary-errors">
<asp:Literal runat="server" ID="ErrorMessage" />
</p>
<fieldset>
<legend>Registration Form</legend>
<ol>
<li>
<asp:Label runat="server" AssociatedControlID="UserName">User name</asp:Label>
<asp:TextBox runat="server" ID="UserName" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="UserName"
CssClass="field-validation-error" ErrorMessage="The user name field is required." />
</li>
<li>
<asp:Label runat="server" AssociatedControlID="Email">Email address</asp:Label>
<asp:TextBox runat="server" ID="Email" TextMode="Email" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="Email"
CssClass="field-validation-error" ErrorMessage="The email address field is required." />
</li>
<li>
<asp:Label runat="server" AssociatedControlID="Password">Password</asp:Label>
<asp:TextBox runat="server" ID="Password" TextMode="Password" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="Password"
CssClass="field-validation-error" ErrorMessage="The password field is required." />
</li>
<li>
<asp:Label runat="server" AssociatedControlID="ConfirmPassword">Confirm password</asp:Label>
<asp:TextBox runat="server" ID="ConfirmPassword" TextMode="Password" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="ConfirmPassword"
CssClass="field-validation-error" Display="Dynamic" ErrorMessage="The confirm password field is required." />
<asp:CompareValidator runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword"
CssClass="field-validation-error" Display="Dynamic" ErrorMessage="The password and confirmation password do not match." />
</li>
</ol>
<asp:Button runat="server" CommandName="MoveNext" Text="Register" />
</fieldset>
</ContentTemplate>
<CustomNavigationTemplate />
</asp:CreateUserWizardStep>
</WizardSteps>
</asp:CreateUserWizard>
</asp:Content>

31
src/TestWebsites/WebForms/Account/Register.aspx.cs

@ -1,31 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using Microsoft.AspNet.Membership.OpenAuth;
namespace Test_Website_Webforms_NET45.Account
{
public partial class Register : Page
{
protected void Page_Load(object sender, EventArgs e)
{
RegisterUser.ContinueDestinationPageUrl = Request.QueryString["ReturnUrl"];
}
protected void RegisterUser_CreatedUser(object sender, EventArgs e)
{
FormsAuthentication.SetAuthCookie(RegisterUser.UserName, createPersistentCookie: false);
string continueUrl = RegisterUser.ContinueDestinationPageUrl;
if (!OpenAuth.IsLocalUrl(continueUrl))
{
continueUrl = "~/";
}
Response.Redirect(continueUrl);
}
}
}

35
src/TestWebsites/WebForms/Account/Register.aspx.designer.cs

@ -1,35 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Test_Website_Webforms_NET45.Account
{
public partial class Register
{
/// <summary>
/// RegisterUser control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CreateUserWizard RegisterUser;
/// <summary>
/// RegisterUserWizardStep control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.CreateUserWizardStep RegisterUserWizardStep;
}
}

35
src/TestWebsites/WebForms/Account/RegisterExternalLogin.aspx

@ -1,35 +0,0 @@
<%@ Page Language="C#" Title="Register an external login" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="RegisterExternalLogin.aspx.cs" Inherits="Test_Website_Webforms_NET45.Account.RegisterExternalLogin" %>
<asp:Content ContentPlaceHolderID="MainContent" runat="server">
<hgroup class="title">
<h1>Register with your <%: ProviderDisplayName %> account</h1>
<h2><%: ProviderUserName %>.</h2>
</hgroup>
<asp:ModelErrorMessage runat="server" ModelStateKey="Provider" CssClass="field-validation-error" />
<asp:PlaceHolder runat="server" ID="userNameForm">
<fieldset>
<legend>Association Form</legend>
<p>
You've authenticated with <strong><%: ProviderDisplayName %></strong> as
<strong><%: ProviderUserName %></strong>. Please enter a user name below for the current site
and click the Log in button.
</p>
<ol>
<li class="email">
<asp:Label runat="server" AssociatedControlID="userName">User name</asp:Label>
<asp:TextBox runat="server" ID="userName" />
<asp:RequiredFieldValidator runat="server" ControlToValidate="userName"
Display="Dynamic" ErrorMessage="User name is required" ValidationGroup="NewUser" />
<asp:ModelErrorMessage runat="server" ModelStateKey="UserName" CssClass="field-validation-error" />
</li>
</ol>
<asp:Button runat="server" Text="Log in" ValidationGroup="NewUser" OnClick="logIn_Click" />
<asp:Button runat="server" Text="Cancel" CausesValidation="false" OnClick="cancel_Click" />
</fieldset>
</asp:PlaceHolder>
</asp:Content>

151
src/TestWebsites/WebForms/Account/RegisterExternalLogin.aspx.cs

@ -1,151 +0,0 @@
using System;
using System.Web;
using System.Web.Security;
using DotNetOpenAuth.AspNet;
using Microsoft.AspNet.Membership.OpenAuth;
namespace Test_Website_Webforms_NET45.Account
{
public partial class RegisterExternalLogin : System.Web.UI.Page
{
protected string ProviderName
{
get { return (string)ViewState["ProviderName"] ?? String.Empty; }
private set { ViewState["ProviderName"] = value; }
}
protected string ProviderDisplayName
{
get { return (string)ViewState["ProviderDisplayName"] ?? String.Empty; }
private set { ViewState["ProviderDisplayName"] = value; }
}
protected string ProviderUserId
{
get { return (string)ViewState["ProviderUserId"] ?? String.Empty; }
private set { ViewState["ProviderUserId"] = value; }
}
protected string ProviderUserName
{
get { return (string)ViewState["ProviderUserName"] ?? String.Empty; }
private set { ViewState["ProviderUserName"] = value; }
}
protected void Page_Load()
{
if (!IsPostBack)
{
ProcessProviderResult();
}
}
protected void logIn_Click(object sender, EventArgs e)
{
CreateAndLoginUser();
}
protected void cancel_Click(object sender, EventArgs e)
{
RedirectToReturnUrl();
}
private void ProcessProviderResult()
{
// Process the result from an auth provider in the request
ProviderName = OpenAuth.GetProviderNameFromCurrentRequest();
if (String.IsNullOrEmpty(ProviderName))
{
Response.Redirect(FormsAuthentication.LoginUrl);
}
// Build the redirect url for OpenAuth verification
var redirectUrl = "~/Account/RegisterExternalLogin";
var returnUrl = Request.QueryString["ReturnUrl"];
if (!String.IsNullOrEmpty(returnUrl))
{
redirectUrl += "?ReturnUrl=" + HttpUtility.UrlEncode(returnUrl);
}
// Verify the OpenAuth payload
var authResult = OpenAuth.VerifyAuthentication(redirectUrl);
ProviderDisplayName = OpenAuth.GetProviderDisplayName(ProviderName);
if (!authResult.IsSuccessful)
{
Title = "External login failed";
userNameForm.Visible = false;
ModelState.AddModelError("Provider", String.Format("External login {0} failed.", ProviderDisplayName));
// To view this error, enable page tracing in web.config (<system.web><trace enabled="true"/></system.web>) and visit ~/Trace.axd
Trace.Warn("OpenAuth", String.Format("There was an error verifying authentication with {0})", ProviderDisplayName), authResult.Error);
return;
}
// User has logged in with provider successfully
// Check if user is already registered locally
if (OpenAuth.Login(authResult.Provider, authResult.ProviderUserId, createPersistentCookie: false))
{
RedirectToReturnUrl();
}
// Store the provider details in ViewState
ProviderName = authResult.Provider;
ProviderUserId = authResult.ProviderUserId;
ProviderUserName = authResult.UserName;
// Strip the query string from action
Form.Action = ResolveUrl(redirectUrl);
if (User.Identity.IsAuthenticated)
{
// User is already authenticated, add the external login and redirect to return url
OpenAuth.AddAccountToExistingUser(ProviderName, ProviderUserId, ProviderUserName, User.Identity.Name);
RedirectToReturnUrl();
}
else
{
// User is new, ask for their desired membership name
userName.Text = authResult.UserName;
}
}
private void CreateAndLoginUser()
{
if (!IsValid)
{
return;
}
var createResult = OpenAuth.CreateUser(ProviderName, ProviderUserId, ProviderUserName, userName.Text);
if (!createResult.IsSuccessful)
{
ModelState.AddModelError("UserName", createResult.ErrorMessage);
}
else
{
// User created & associated OK
if (OpenAuth.Login(ProviderName, ProviderUserId, createPersistentCookie: false))
{
RedirectToReturnUrl();
}
}
}
private void RedirectToReturnUrl()
{
var returnUrl = Request.QueryString["ReturnUrl"];
if (!String.IsNullOrEmpty(returnUrl) && OpenAuth.IsLocalUrl(returnUrl))
{
Response.Redirect(returnUrl);
}
else
{
Response.Redirect("~/");
}
}
}
}

39
src/TestWebsites/WebForms/Account/RegisterExternalLogin.aspx.designer.cs

@ -1,39 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace Test_Website_Webforms_NET45.Account
{
public partial class RegisterExternalLogin
{
/// <summary>
/// userNameForm control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.PlaceHolder userNameForm;
/// <summary>
/// userName control.
/// </summary>
/// <remarks>
/// Auto-generated field.
/// To modify move field declaration from designer file to code-behind file.
/// </remarks>
protected global::System.Web.UI.WebControls.TextBox userName;
}
}

12
src/TestWebsites/WebForms/Account/Web.config

@ -1,12 +0,0 @@
<?xml version="1.0"?>
<configuration>
<location path="Manage.aspx">
<system.web>
<authorization>
<deny users="?"/>
</authorization>
</system.web>
</location>
</configuration>

31
src/TestWebsites/WebForms/App_Start/AuthConfig.cs

@ -1,31 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Microsoft.AspNet.Membership.OpenAuth;
namespace Test_Website_Webforms_NET45
{
internal static class AuthConfig
{
public static void RegisterOpenAuth()
{
// See http://go.microsoft.com/fwlink/?LinkId=252803 for details on setting up this ASP.NET
// application to support logging in via external services.
//OpenAuth.AuthenticationClients.AddTwitter(
// consumerKey: "your Twitter consumer key",
// consumerSecret: "your Twitter consumer secret");
//OpenAuth.AuthenticationClients.AddFacebook(
// appId: "your Facebook app id",
// appSecret: "your Facebook app secret");
//OpenAuth.AuthenticationClients.AddMicrosoft(
// clientId: "your Microsoft account client id",
// clientSecret: "your Microsoft account client secret");
//OpenAuth.AuthenticationClients.AddGoogle();
}
}
}

1
src/TestWebsites/WebForms/Global.asax.cs

@ -15,7 +15,6 @@ namespace Test_Website_Webforms_NET45
{
// Code that runs on application startup
BundleConfig.RegisterBundles(BundleTable.Bundles);
AuthConfig.RegisterOpenAuth();
RouteConfig.RegisterRoutes(RouteTable.Routes);
}

76
src/TestWebsites/WebForms/Test_Website_Webforms.csproj

@ -73,46 +73,12 @@
<Reference Include="Microsoft.ScriptManager.WebForms, Version=4.5.6.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<HintPath>..\..\..\packages\Microsoft.AspNet.ScriptManager.WebForms.4.5.6\lib\net45\Microsoft.ScriptManager.WebForms.dll</HintPath>
</Reference>
<Reference Include="EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
<HintPath>..\..\..\packages\EntityFramework.5.0.0\lib\net45\EntityFramework.dll</HintPath>
</Reference>
<Reference Include="System.Web.Optimization, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<HintPath>..\..\..\packages\Microsoft.AspNet.Web.Optimization.1.0.0\lib\net40\System.Web.Optimization.dll</HintPath>
</Reference>
<Reference Include="System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<HintPath>..\..\..\packages\Microsoft.AspNet.Providers.Core.1.2\lib\net40\System.Web.Providers.dll</HintPath>
</Reference>
<Reference Include="DotNetOpenAuth.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\packages\DotNetOpenAuth.Core.4.1.4.12333\lib\net40-full\DotNetOpenAuth.Core.dll</HintPath>
</Reference>
<Reference Include="DotNetOpenAuth.OAuth, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\packages\DotNetOpenAuth.OAuth.Core.4.1.4.12333\lib\net40-full\DotNetOpenAuth.OAuth.dll</HintPath>
</Reference>
<Reference Include="DotNetOpenAuth.OAuth.Consumer, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\packages\DotNetOpenAuth.OAuth.Consumer.4.1.4.12333\lib\net40-full\DotNetOpenAuth.OAuth.Consumer.dll</HintPath>
</Reference>
<Reference Include="DotNetOpenAuth.OpenId, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\packages\DotNetOpenAuth.OpenId.Core.4.1.4.12333\lib\net40-full\DotNetOpenAuth.OpenId.dll</HintPath>
</Reference>
<Reference Include="DotNetOpenAuth.OpenId.RelyingParty, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\packages\DotNetOpenAuth.OpenId.RelyingParty.4.1.4.12333\lib\net40-full\DotNetOpenAuth.OpenId.RelyingParty.dll</HintPath>
</Reference>
<Reference Include="DotNetOpenAuth.AspNet, Version=4.0.0.0, Culture=neutral, PublicKeyToken=2780ccd10d57b246, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\packages\DotNetOpenAuth.AspNet.4.1.4.12333\lib\net40-full\DotNetOpenAuth.AspNet.dll</HintPath>
</Reference>
<Reference Include="Microsoft.AspNet.Membership.OpenAuth, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<HintPath>..\..\..\packages\Microsoft.AspNet.Membership.OpenAuth.1.0.1\lib\net45\Microsoft.AspNet.Membership.OpenAuth.dll</HintPath>
</Reference>
<Reference Include="Microsoft.AspNet.Web.Optimization.WebForms">
<Private>True</Private>
<HintPath>..\..\..\packages\Microsoft.AspNet.Web.Optimization.WebForms.1.0.0\lib\net45\Microsoft.AspNet.Web.Optimization.WebForms.dll</HintPath>
</Reference>
<Reference Include="Microsoft.AspNet.FriendlyUrls, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
<HintPath>..\..\..\packages\Microsoft.AspNet.FriendlyUrls.Core.1.0.0\lib\net45\Microsoft.AspNet.FriendlyUrls.dll</HintPath>
</Reference>
@ -123,11 +89,6 @@
</ItemGroup>
<ItemGroup>
<Content Include="About.aspx" />
<Content Include="Account\Login.aspx" />
<Content Include="Account\Manage.aspx" />
<Content Include="Account\OpenAuthProviders.ascx" />
<Content Include="Account\Register.aspx" />
<Content Include="Account\RegisterExternalLogin.aspx" />
<Content Include="Contact.aspx" />
<Content Include="Content\Site.css" />
<Content Include="packages.config" />
@ -179,7 +140,6 @@
</ItemGroup>
<ItemGroup>
<Compile Include="App_Start\BundleConfig.cs" />
<Compile Include="App_Start\AuthConfig.cs" />
<Compile Include="About.aspx.cs">
<DependentUpon>About.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
@ -187,41 +147,6 @@
<Compile Include="About.aspx.designer.cs">
<DependentUpon>About.aspx</DependentUpon>
</Compile>
<Compile Include="Account\Login.aspx.cs">
<DependentUpon>Login.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Account\Login.aspx.designer.cs">
<DependentUpon>Login.aspx</DependentUpon>
</Compile>
<Compile Include="Account\Manage.aspx.cs">
<DependentUpon>Manage.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Account\Manage.aspx.designer.cs">
<DependentUpon>Manage.aspx</DependentUpon>
</Compile>
<Compile Include="Account\OpenAuthProviders.ascx.cs">
<DependentUpon>OpenAuthProviders.ascx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Account\OpenAuthProviders.ascx.designer.cs">
<DependentUpon>OpenAuthProviders.ascx</DependentUpon>
</Compile>
<Compile Include="Account\Register.aspx.cs">
<DependentUpon>Register.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Account\Register.aspx.designer.cs">
<DependentUpon>Register.aspx</DependentUpon>
</Compile>
<Compile Include="Account\RegisterExternalLogin.aspx.cs">
<DependentUpon>RegisterExternalLogin.aspx</DependentUpon>
<SubType>ASPXCodeBehind</SubType>
</Compile>
<Compile Include="Account\RegisterExternalLogin.aspx.designer.cs">
<DependentUpon>RegisterExternalLogin.aspx</DependentUpon>
</Compile>
<Compile Include="App_Start\RouteConfig.cs" />
<Compile Include="Contact.aspx.cs">
<DependentUpon>Contact.aspx</DependentUpon>
@ -267,7 +192,6 @@
<Folder Include="App_Data\" />
</ItemGroup>
<ItemGroup>
<Content Include="Account\Web.config" />
<Content Include="Site.Master" />
</ItemGroup>
<ItemGroup>

8
src/TestWebsites/WebForms/packages.config

@ -1,15 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="DotNetOpenAuth.AspNet" version="4.1.4.12333" targetFramework="net45" />
<package id="DotNetOpenAuth.Core" version="4.1.4.12333" targetFramework="net45" />
<package id="DotNetOpenAuth.OAuth.Consumer" version="4.1.4.12333" targetFramework="net45" />
<package id="DotNetOpenAuth.OAuth.Core" version="4.1.4.12333" targetFramework="net45" />
<package id="DotNetOpenAuth.OpenId.Core" version="4.1.4.12333" targetFramework="net45" />
<package id="DotNetOpenAuth.OpenId.RelyingParty" version="4.1.4.12333" targetFramework="net45" />
<package id="EntityFramework" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.FriendlyUrls" version="1.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.FriendlyUrls.Core" version="1.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.Membership.OpenAuth" version="1.0.1" targetFramework="net45" />
<package id="Microsoft.AspNet.Providers.Core" version="1.2" targetFramework="net45" />
<package id="Microsoft.AspNet.Providers.LocalDB" version="1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.ScriptManager.MSAjax" version="4.5.6" targetFramework="net45" />

Loading…
Cancel
Save