【发布时间】:2019-09-15 20:33:00
【问题描述】:
我已经制作了剃须刀页面来注销用户。当经过身份验证的用户访问路由/account/logout 时,我想向他显示带有成功消息的页面,如果用户是匿名的,那么页面是未经授权的。但是,不能通过直接 url 输入访问此成功页面。
以下代码运行良好,但任何人都可以导航到/account/logout/success,它充当普通页面(并且由于它不负责退出,因此可能会造成混淆)。
public class LogoutModel : CustomPageModel
{
private readonly SignInManager _signInManager;
public LogoutModel(SignInManager signInManager) => _signInManager = signInManager;
public async Task<IActionResult> OnGetAsync()
{
if (_signInManager.IsSignedIn(User))
{
await _signInManager.SignOutAsync();
return RedirectToPage("Logout", "Success");
}
return Unauthorized();
}
public void OnGetSuccess()
{
}
}
如何防止直接访问处理程序 OnGetSuccess?
【问题讨论】:
标签: c# asp.net-core razor-pages asp.net-core-2.2