2013-02-03 30 views
1

我的網站有一個Orchard CMS,需要幫助在用戶登錄,註銷並創建新配置文件後重定向用戶。我正在使用Orchard Admin頁面中的「Profile」模塊。在Orchard CMS中,如何在用戶登錄,註銷並創建配置文件後設置重定向URL?

目前我認爲代碼會在用戶點擊鏈接「登錄」之前將用戶發送給他們的最後一頁。與「退出」相同。我想讓人們在登錄後重定向到主頁,註銷並創建新的註冊。

我相當肯定它生活在以下文件Core\Shapes\Views\User.cshtml。有人可以解釋如何編輯它(如果這實際上是正確的編輯)重新引導用戶到主頁?謝謝您的幫助。

回答

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){ } 
    } 
} 
+0

奇怪的是,當我使用這個時,菜單中的我的'登錄'鏈接不會更改爲用戶名(帶有下拉和選項註銷)。這是因爲在該代碼中,我檢查了「WorkContext.CurrentUser」。有了這段代碼,該屬性有時爲空。沒有,我沒有問題... – Peter

相關問題