1

我的网站有一个 Orchard CMS,需要帮助在用户登录、注销和创建新配置文件后重定向用户。我正在使用 Orchard 管理页面中的“个人资料”模块。

目前,我认为代码会将用户发送到他们在点击“登录”链接之前所在的最后一页。与“退出”相同。我希望人们在登录、注销并创建新注册后被重定向到主页。

我相当肯定它存在于以下文件Core\Shapes\Views\User.cshtml中。有人可以解释如何编辑它(如果这实际上是正确的编辑)以将用户重定向到主页?谢谢您的帮助。

4

1 回答 1

2

我想简单的方法是在你的模块中实现 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 ){ }
    }
}
于 2013-02-14T09:29:06.500 回答