2011-06-30 15 views
1

我想知道在Orchard.User模塊中定義的帳戶控制器中使用IEnumerable userEventHandlers是什麼?Orchard.User模塊中IEnumerable <IUserEventHandler> userEventHandlers的用途

[HttpPost] 
     [SuppressMessage("Microsoft.Design", "CA1054:UriParametersShouldNotBeStrings", 
      Justification = "Needs to take same parameter type as Controller.Redirect()")] 
     public ActionResult LogOn(string userNameOrEmail, string password, string returnUrl) { 
      var user = ValidateLogOn(userNameOrEmail, password); 
      if (!ModelState.IsValid) { 
       var shape = _orchardServices.New.LogOn().Title(T("Log On").Text); 
       return new ShapeResult(this, shape); 
      } 

      _authenticationService.SignIn(user, false); 
      foreach (var userEventHandler in _userEventHandlers) { 
       userEventHandler.LoggedIn(user); 
      } 

      return this.RedirectLocal(returnUrl); 
     } 

回答

1

它會建議您傳遞一個包含IUserEventHandler的IEnumerable。這些將在事件發生時依次調用。

foreach (var userEventHandler in _userEventHandlers) { 
       userEventHandler.LoggedIn(user); 
      } 

我會想象你可能有多個用戶需要關心用戶已經登錄,這是一個乾淨的通知他們的方式。

+0

感謝@Chris,我想知道那種用戶事件可以在這裏調用?對不起,我可憐的英語.. –

+0

我會說任何實現IUserEventHandler。 – ChrisBint

+0

好的!現在我知道..非常感謝Chris –

相關問題