/// <summary> /// 【11】获取组名 /// </summary> /// <returns>共有2列,Name和Code</returns> public static DataTable GetGroup() { DataTable dt = new DataTable(); dt.Columns.Add("Name"); dt.Columns.Add("Code"); IEdmUserMgr7 UsrMgr; IEdmUserGroup8 mngmtGroup; if (vault == null) { vault = new EdmVault5(); } if (!vault.IsLoggedIn) { vault.LoginAuto(VaultName, new Control().Handle.ToInt32()); } UsrMgr = (IEdmUserMgr7)vault; //Traverse groups //string Groups = ""; IEdmPos5 UserGroupPos = default(IEdmPos5); UserGroupPos = UsrMgr.GetFirstUserGroupPosition(); while (!UserGroupPos.IsNull) { mngmtGroup = (IEdmUserGroup8)UsrMgr.GetNextUserGroup(UserGroupPos); //Groups = Groups + mngmtGroup.Name + "\n"; DataRow dr = dt.NewRow(); dr["Name"] = mngmtGroup.Name; dr["Code"] = mngmtGroup.ID; dt.Rows.Add(dr); } return(dt); }
public async Task <IActionResult> Login(string username, string password) { if (ModelState.IsValid) { var user = await UsrMgr.FindByNameAsync(username); if (user != null && !user.EmailConfirmed && (await UsrMgr.CheckPasswordAsync(user, password))) { ModelState.AddModelError(string.Empty, "Email ainda não confirmado"); return(View()); } var result = await SignInMgr.PasswordSignInAsync(username, password, false, false); if (result.Succeeded) { return(RedirectToAction("Index", "Post")); } ModelState.AddModelError(string.Empty, "Tentativa de login inválido"); } return(View()); }
public async Task <IActionResult> ResetPassword(ResetPasswordViewModel model) { Console.WriteLine(model.Email); Console.WriteLine(model.Token); if (ModelState.IsValid) { var user = await UsrMgr.FindByEmailAsync(model.Email); if (user != null) { var result = await UsrMgr.ResetPasswordAsync(user, model.Token, model.Password); if (result.Succeeded) { return(View("ResetPasswordConfirmation")); } foreach (var error in result.Errors) { ModelState.AddModelError("", error.Description); } return(View(model)); } ModelState.AddModelError("", "Usuário não encontrado!"); return(View(model)); } ModelState.AddModelError("", "Você forneceu algum dado inválido"); return(View(model)); }
public async Task <IActionResult> ConfirmEmail(string userId, string token) { if (userId == null || token == null) { return(RedirectToAction("Index", "Post")); } var user = await UsrMgr.FindByIdAsync(userId); if (user == null) { ViewBag.ErrorMessage = $"O Id de usuário {userId} é inválido"; return(View("Error")); } var result = await UsrMgr.ConfirmEmailAsync(user, token); if (result.Succeeded) { ViewBag.Message = "Email confirmado com sucesso!"; return(View("Messages")); } ViewBag.ErrorMessage = "Email não pôde ser confirmado :("; return(View("Error")); }
public async Task <IActionResult> Register(AppUser user, string password) { if (ModelState.IsValid) { try { var result = await UsrMgr.CreateAsync(user, password); if (result.Succeeded) { var token = await UsrMgr.GenerateEmailConfirmationTokenAsync(user); var confirmationLink = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, token = token }, Request.Scheme); logger.Log(LogLevel.Warning, confirmationLink); string emailHtmlBody = "<!DOCTYPE html>" + "<html>" + "<head>" + "<title></title>" + "</head>" + "<body>" + "Clique no link para confirmar seu email:" + "<br/>" + "<a href='" + confirmationLink.ToString() + "'>Confirmar email</a>" + "</body>" + "</html>"; SendEmail.Send(user.Email, "BlogAspNet - Confirmar email", emailHtmlBody); ViewBag.MessageTitle = "Registro feito com sucesso!"; ViewBag.MessageBody = "Antes que você possa fazer login, por favor, confirme " + "seu email clicando no link de confirmação que mandamos para seu email"; return(View("ConfirmEmail")); } foreach (var error in result.Errors) { ModelState.AddModelError(string.Empty, error.Description); } return(View()); } catch (Exception ex) { ModelState.AddModelError("", ex.Message); return(View()); } } return(View()); }
/// <summary> /// 【11.1】获取组成员 /// </summary> /// <param name="GroupID">组ID</param> /// <returns>共有2列,ID/Name/FullName</returns> public static DataTable GetGroupMember(int GroupID) { DataTable dt = new DataTable(); dt.Columns.Add("ID"); dt.Columns.Add("Name"); dt.Columns.Add("FullName"); IEdmUserMgr7 UsrMgr; IEdmUserGroup8 mngmtGroup; IEdmUser9 user; IEdmPos5 UserPos = default(IEdmPos5); if (vault == null) { vault = new EdmVault5(); } if (!vault.IsLoggedIn) { vault.LoginAuto(VaultName, new Control().Handle.ToInt32()); } UsrMgr = (IEdmUserMgr7)vault; IEdmPos5 UserGroupPos = default(IEdmPos5); UserGroupPos = UsrMgr.GetFirstUserGroupPosition(); while (!UserGroupPos.IsNull) { mngmtGroup = (IEdmUserGroup8)UsrMgr.GetNextUserGroup(UserGroupPos); if (mngmtGroup.ID == GroupID) { UserPos = mngmtGroup.GetFirstUserPosition(); while (!UserPos.IsNull) { user = (IEdmUser9)mngmtGroup.GetNextUser(UserPos); //Users = Users + " " + user.Name + "\n"; DataRow dr = dt.NewRow(); dr["ID"] = user.ID; dr["Name"] = user.Name; dr["FullName"] = user.FullName; dt.Rows.Add(dr); } } } return(dt); }
public async Task <IActionResult> ForgotPassword(ForgotPasswordViewModel model) { if (ModelState.IsValid) { var user = await UsrMgr.FindByEmailAsync(model.Email); if (user != null && await UsrMgr.IsEmailConfirmedAsync(user)) { var token = await UsrMgr.GeneratePasswordResetTokenAsync(user); var passwordResetLink = Url.Action("ResetPassword", "Account", new { email = model.Email, token = token }, Request.Scheme); logger.Log(LogLevel.Warning, passwordResetLink); string emailHtmlBody = "<!DOCTYPE html>" + "<html>" + "<head>" + "<title></title>" + "</head>" + "<body>" + "Clique no link para redefinir sua senha:" + "<br/>" + "<a href='" + passwordResetLink.ToString() + "'>Redefinir senha</a>" + "</body>" + "</html>"; SendEmail.Send(model.Email, "BlogAspNet - Redefinir senha", emailHtmlBody); return(View("ForgotPasswordConfirmation")); } ViewBag.Message = "Usuário não cadastrado ou email do usuário não foi confirmado!"; return(View()); } return(View(model)); }