62,046
社区成员
发帖
与我相关
我的任务
分享
/// <summary>
/// 登录
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[HttpPost, Route("Account/Login")]
public JsonResult LoginAsync(LoginModel model)
{
BaseResult result = new BaseResult();
var signInResult = Login(model.UserName, model.Password, model.RemenberMe);
if (signInResult.IsNotAllowed)//账号未启用
{
result.ResultCode = Resources.Tips.LoginTips.SignInUserNotAllowedCode;
result.ResultMsg = Resources.Tips.LoginTips.SignInUserNotAllowedMsg;
}
else if (signInResult.IsLockedOut)//账号被锁定
{
result.ResultCode = Resources.Tips.LoginTips.SignInUserLockedCode;
result.ResultMsg = Resources.Tips.LoginTips.SignInUserLockedMsg;
}
else if (!signInResult.Succeeded)
{
result.ResultCode = Resources.Tips.LoginTips.SignInPasswordOrUserNameErrorCode;
result.ResultMsg = Resources.Tips.LoginTips.SignInPasswordOrUserNameErrorMsg;
}
if(result.ResultCode == CommonTips.CommonObjectSuccessCode)
{
LogService.WriteLog(model.UserName, ValueHelper.NowTime + ",IP:" + HttpContext.GetClientUserIp(), "成功", "登录", "账户管理");
}
else
{
LogService.WriteLog(model.UserName, ValueHelper.NowTime + ",IP:" + HttpContext.GetClientUserIp() + result.ResultMsg, "失败", "登录", "账户管理");
}
return Json(result);
}
// <summary>
/// 注销
/// </summary>
[Route("Account/Logout")]
public IActionResult LogoutAsync()
{
string userId = HttpContext.GetUserId();
Logout();
LogService.WriteLog(userId, ValueHelper.NowTime + ",IP:" + HttpContext.GetClientUserIp(), "成功", "注销", "账户管理");
return RedirectToAction("Index");
}
/// <summary>
/// 登录
/// </summary>
/// <param name="username"></param>
/// <param name="pwd"></param>
/// <returns></returns>
public SignInResult Login(string username, string pwd, bool remenberMe)
{
return SignInManager.PasswordSignInAsync(username, pwd, remenberMe, false).Result;
}
/// <summary>
/// 注销
/// </summary>
/// <returns></returns>
public async void Logout()
{
await SignInManager.SignOutAsync();
}
<form asp-area="" asp-controller="Account" asp-action="Logout" method="post" id="logoutForm">
<div class="yr-manage-top-nav">
<ul>
<li>您好!@getUser.ChineseName</li>
<li><button type="submit" class="btn btn-manage-nav btn-lockout">退出系统</button></li>
</ul>
</div>
Controllers中AccountController.cs
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Logout()
{
await _signInManager.SignOutAsync();
_logger.LogInformation("User logged out.");
return RedirectToAction(nameof(HomeController.Index), "Home");
}