summaryrefslogtreecommitdiffstats
path: root/samples/TestAzureAD/Account/Manage.aspx.cs
diff options
context:
space:
mode:
Diffstat (limited to 'samples/TestAzureAD/Account/Manage.aspx.cs')
-rw-r--r--samples/TestAzureAD/Account/Manage.aspx.cs95
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