-3

重複の可能性:
Tridionに現在ログインしているユーザーのtcmidを取得するにはどうすればよいですか?

クラスlibrary(dll)に以下のコードを記述し、構成ファイルod Tridionにアセンブリ参照を追加しましたが、user.Idを示すウィンドウまたはアラートを取得できず、エラーが発生しません。

[TcmExtension( "Myevent")] public class GetInfo:TcmExtension {

public GetInfo()
{
    EventSystem.Subscribe<User, LoadEventArgs>(OnUserLoad, EventPhases.TransactionCommitted);
}

private void OnUserLoad(User user, LoadEventArgs eventArgs, EventPhases phase)
{



    MessageBox.Show(user.Id);
    Console.WriteLine(user.Id);
}
4

2 に答える 2

1

イベントシステムとGUI拡張機能を混同しているようです。サブスクライブするコードの最初の行とイベントハンドラーはイベントシステムの一部であり、実際にはある種のログメカニズムにしか書き込むことができません。何を達成しようとしていますか?

CMSサーバー上のVisualStudioを使用してデバッグでコードを実行すると、コードはブレークポイントに到達して実行されますか?MessageBoxが表示されない、またはコードがまったく実行されないという問題ですか。

于 2013-01-22T15:09:02.687 に答える
1

他の質問への回答で述べたように、メッセージ ボックスや console.writes を使用して、SDL Tridion のイベント システムからの情報を表示することはできません。Tridion イベント ログへのロギングに戻るか、イベント システムをデバッグする必要があります。

この msdn articleで説明されているように、リモート デバッグは可能ですが、通常はセットアップが面倒だと思います (開発マシンと CMS の間のファイアウォールによってブロックされていない場合)。そのため、通常は開発用 CMS サーバーに Visual Studio をインストールするだけに戻り、dllhost.exe プロセスにアタッチしてイベント システム DLL をそこから直接デバッグします (詳細については、このブログ投稿を参照してください)。

また、他の質問への回答でも述べたように、イベントシステムで要件を達成できるとはまだ確信していません。ユーザーのアクティブなログインをログに記録するには、UI 拡張機能またはまったく別のものを検討する必要がある場合があります。パスワードは SDL Tridion Web アプリケーションではなく IIS によって検証されるため、技術的には SDL Tridion UI にログインすることはありません。

ps。より多くの情報を提供したい場合は、質問を編集することをお勧めします。重複した質問を開くことは決して良い考えではありません。

于 2013-01-23T09:08:20.260 に答える