与往常一样,使用 Orchard 有不止一种方法可以做到这一点:)
方法 1:覆盖用户形状
当您注销时,您将被重定向到上的操作方法Orchard.Users.AccountController
called 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" })
to
@Html.ActionLink(T("Sign Out").ToString(), "LogOff", new { Controller = "Account", Area = "Orchard.Users", ReturnUrl = "/My/LogOff/Confirmation/Page" }, new { rel = "nofollow" })
方法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) { }
}
希望能帮助到你!