diff options
Diffstat (limited to 'samples/TestAzureAD/Account/Manage.aspx.cs')
-rw-r--r-- | samples/TestAzureAD/Account/Manage.aspx.cs | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/samples/TestAzureAD/Account/Manage.aspx.cs b/samples/TestAzureAD/Account/Manage.aspx.cs new file mode 100644 index 0000000..98ca4c7 --- /dev/null +++ b/samples/TestAzureAD/Account/Manage.aspx.cs @@ -0,0 +1,95 @@ +using System; +using System.Collections.Generic; +using System.Linq; + +using Microsoft.AspNet.Membership.OpenAuth; + +namespace TestAzureAD.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.aspx"); + + 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.aspx?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.aspx" + 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]"; + } + } +}
\ No newline at end of file |