use*_*388 4 asp.net-mvc orchardcms
是否有一个事件在用户注销前端时被触发,我如何使用该事件将用户重定向到特定的视图或页面?我希望用户在退出后收到一条消息,说明"您已成功注销".
和往常一样,Orchard有不止一种方法可以做到这一点:)
方法1:覆盖用户形状
当您注销时,您将被重定向到Orchard.Users.AccountController被调用的操作方法LogOff,该方法接受一个returnUrl参数.包含注销链接的形状在下面,~/Core/Shapes/Views/User.cshtml但您可以通过在主题中创建它的副本来覆盖它Views/User.cshtml(或使用形状跟踪模块来查找此形状并创建替代).
在你的副本中你所要做的就是改变
@Html.ActionLink(T("Sign Out").ToString(), "LogOff", new { Controller = "Account", Area = "Orchard.Users", ReturnUrl = Context.Request.RawUrl }, new { rel = "nofollow" })
Run Code Online (Sandbox Code Playgroud)
至
@Html.ActionLink(T("Sign Out").ToString(), "LogOff", new { Controller = "Account", Area = "Orchard.Users", ReturnUrl = "/My/LogOff/Confirmation/Page" }, new { rel = "nofollow" })
Run Code Online (Sandbox Code Playgroud)
方法2:IUserEventHandler
对于更动态的需求,您可以实现Orchard.Users.Events.IUserEventHandler接口,在LoggedOut调用方法时重定向到您的确认页面:
public class LoggedOutRedirect : IUserEventHandler
{
private readonly IHttpContextAccessor _httpContext;
public LoggedOutRedirect(IHttpContextAccessor httpContext)
{
_httpContext = httpContext;
}
public void LoggedOut(IUser user)
{
_httpContext.Current().Response.Redirect("http://www.google.com/");
}
public void Creating(UserContext context) { }
public void Created(UserContext context) { }
public void LoggedIn(IUser user) { }
public void AccessDenied(IUser user) { }
public void ChangedPassword(IUser user) { }
public void SentChallengeEmail(IUser user) { }
public void ConfirmedEmail(IUser user) { }
public void Approved(IUser user) { }
}
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你!
| 归档时间: |
|
| 查看次数: |
1411 次 |
| 最近记录: |