我的网站有一个 Orchard CMS,需要帮助在用户登录、注销和创建新配置文件后重定向用户。我正在使用 Orchard 管理页面中的“个人资料”模块。
目前,我认为代码会将用户发送到他们在点击“登录”链接之前所在的最后一页。与“退出”相同。我希望人们在登录、注销并创建新注册后被重定向到主页。
我相当肯定它存在于以下文件Core\Shapes\Views\User.cshtml
中。有人可以解释如何编辑它(如果这实际上是正确的编辑)以将用户重定向到主页?谢谢您的帮助。
我的网站有一个 Orchard CMS,需要帮助在用户登录、注销和创建新配置文件后重定向用户。我正在使用 Orchard 管理页面中的“个人资料”模块。
目前,我认为代码会将用户发送到他们在点击“登录”链接之前所在的最后一页。与“退出”相同。我希望人们在登录、注销并创建新注册后被重定向到主页。
我相当肯定它存在于以下文件Core\Shapes\Views\User.cshtml
中。有人可以解释如何编辑它(如果这实际上是正确的编辑)以将用户重定向到主页?谢谢您的帮助。
我想简单的方法是在你的模块中实现 IUserEventHandler 。创建一个类 LogInRedirect 并实现一个方法 LoggedIn。像这样:
using System.Web.Mvc;
using Orchard.Mvc;
using Orchard.Security;
using Orchard.Users.Events;
namespace Orchard.Users {
public class LogInRedirect : IUserEventHandler
{
private readonly IHttpContextAccessor _httpContext;
public LoggedOutRedirect( IHttpContextAccessor httpContext )
{
_httpContext = httpContext;
}
public void LoggedIn( IUser user )
{
UrlHelper urlHelper = new UrlHelper( _httpContext.Current().Request.RequestContext );
_httpContext.Current().Response.Redirect( urlHelper.RequestContext.HttpContext.Request.ApplicationPath + "/yourController/yourAction" );
}
public void Creating( UserContext context ) { }
public void Created( UserContext context ) { }
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 ) { }
public void LoggedOut( IUser user ){ }
}
}