mirror of https://github.com/abpframework/abp
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.1 KiB
40 lines
1.1 KiB
using System.Threading.Tasks;
|
|
using Microsoft.AspNetCore.Mvc;
|
|
using Volo.Abp.Identity;
|
|
|
|
namespace Volo.Abp.Account.Web.Pages.Account
|
|
{
|
|
public class LogoutModel : AccountPageModel
|
|
{
|
|
[HiddenInput]
|
|
[BindProperty(SupportsGet = true)]
|
|
public string ReturnUrl { get; set; }
|
|
|
|
[HiddenInput]
|
|
[BindProperty(SupportsGet = true)]
|
|
public string ReturnUrlHash { get; set; }
|
|
|
|
public virtual async Task<IActionResult> OnGetAsync()
|
|
{
|
|
await LocalEventBus.PublishAsync(new IdentitySecurityLogEvent
|
|
{
|
|
Identity = IdentitySecurityLogIdentityConsts.Identity,
|
|
Action = IdentitySecurityLogActionConsts.Logout
|
|
});
|
|
|
|
await SignInManager.SignOutAsync();
|
|
if (ReturnUrl != null)
|
|
{
|
|
return RedirectSafely(ReturnUrl, ReturnUrlHash);
|
|
}
|
|
|
|
return RedirectToPage("/Account/Login");
|
|
}
|
|
|
|
public virtual Task<IActionResult> OnPostAsync()
|
|
{
|
|
return Task.FromResult<IActionResult>(Page());
|
|
}
|
|
}
|
|
}
|