最初にサブスクライブしていたイベントは、識別可能なオブジェクトとそのアクションの処理フェーズであり、基本的にSDL Tridion CMSで発生するすべてのトランザクションでトリガーされるため、ユーザーがいつログインしたかはわかりません。 (基本的には常に発生するすべてです)。
おそらく、ユーザーがログインした後に最初に発生することの1つは、ユーザー情報とアプリケーションデータが読み取られることです。したがって、試してみる必要があるのは、次のようなものです。
private void Subscribe()
{
EventSystem.Subscribe<User, LoadEventArgs>(GetInfo, EventPhases.Initiated);
}
public void GetInfo(User user, LoadEventArgs args, EventPhases phase)
{
TcmUri id = user.Id;
string name = user.Title;
}
ただし、これは、履歴の表示、公開トランザクションの確認など、他のアクションによってもトリガーされることに注意してください。このアクションをユーザーログインの一部として区別する方法がわかりません。これは、そのために特別にトリガーされるイベントがないためです。
LoadEventArgs
たとえば、、、、またはでContextVariables
、ログインEventStack
に固有の何かを見つけることができるかどうかを確認することをお勧めします。FormerLoadState
LoadFlags
編集:
イベントシステムはSDLTridionコア内で実行されているため、どこからでもコンソールウィンドウのポップアップが表示されないことに注意してください。情報をログに記録する場合は、次のusingステートメントを含めることができます。
using Tridion.Logging;
ディレクトリTridion.Logging.dll
にあるへの参照を追加した後。..\Tridion\bin\client
次に、コードで次のログステートメントを使用できます。
Logger.Write("message", "name", LoggingCategory.General, TraceEventType.Information);
これは、Tridionイベントログに記録されます(情報メッセージも表示するようにログレベルを設定している場合)。
ただし、ここでのおそらく最良のオプションは、イベントシステムをデバッグすることです。これにより、イベントがトリガーされたときにオブジェクトを直接検査できます。ここでは、イベントシステムのデバッグを設定する方法についてのすばらしいブログ記事を見つけることができます。