2011-06-30 1 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

ありがとう@クリス、私はその種類のユーザーイベントがここで呼び出すことができることを知りたいですか?私の貧しい英語のために申し訳ありません。 –

+0

私はそれがIUserEventHandlerを実装すると言うでしょう。 – ChrisBint

+0

今私は知っている..たくさんのおかげでクリス –

関連する問題