1

テーブルがLogあり、ユーザーactivities(特にセキュリティ関連) を追加する必要があります。

たとえば、ユーザーがパスワードを変更したり、ソフトウェアにログインしたりすると、テーブルに追加"password changed"または"user logged in"文字列が追加されます。here でpassword change action説明されているように、デフォルトをオーバーライドする必要があると思います

私は正しいですか、対応するアクションは何ですか? XAFによって提供されますか?ドキュメントには何も見つかりませんでした。実際、それをテーブルに追加する方法もわかりません。これtxtまで、テキストをファイルに記録しただけでした。

4

2 に答える 2

2

@shamp00 が上で述べたように、監査証跡モジュールはこれをすでに非常にうまく行っています。監査証跡モジュールを有効にすると、すべてがログに記録れるため、コードを記述して必要な情報のみを表示するだけです :-)
残念ながら、パスワード プロパティは読み取り専用であるためアクセスできませんが、パスワードのリセットを含む他のすべてのユーザーの変更を監視できます。これにより、「次回ログオン時にパスワードを変更する」プロパティが変更されるためです。
あなたがする必要があるのは、

  1. 監査証跡モジュールをプロジェクトに追加します。
  2. 監査したい特定のオブジェクトにこのスニペットを追加します
private XPCollection<AuditDataItemPersistent> userAuditTrail;  
public XPCollection<AuditDataItemPersistent> UserAuditTrail  
{  
  get  
      {  
          if(userAuditTrail == null)  
          {  
              userAuditTrail = AuditedObjectWeakReference.GetAuditTrail(Session, user);  
          }  
      return userAuditTrail;  
       }
}

DevExpress.ExpressApp.Security.Strategy.SecuritySystemUserこれを機能させるために、SecuritySystemUser を拡張して完全な従業員の詳細 (名、姓、住所の詳細) を追加するだけでなく、監査も追加する必要があるため、継承元の employee というオブジェクトを作成しました。現在、パスワード プロパティは読み取り専用であるため、その変更を監査することはできません。Devexpress Universal を使用しているため、ソース コードがあるので、気に入らない部分を変更して、必要に応じて再コンパイルできます。以下のスニペットを「パスワード変更アクション」に追加することを検討してください。

AuditDataItem customDataItem = new AuditDataItem(myAuditedObject, null, "CustomOldValue", "CustomNewValue", AuditOperationType.CustomData); AuditTrailService.Instance.AddCustomAuditData(mySession, customDataItem); AuditTrailService.Instance.SaveAuditData(mySession);

次に、タイムスタンプについては、ログに記録する各イベント (ログオンなど) のコントローラーを拡張し、上記のスニペットを使用して監査ログに時刻を追加できます。
これがお役に立てば幸いです。私はそれを調べ続けます。

于 2014-01-04T19:12:51.603 に答える
1

これが監査証跡モジュールの機能です。

監査証跡にカスタム データを追加する必要がある場合は、「カスタム データを監査ログに追加する 」というセクションを参照してください。

于 2013-09-19T09:41:42.613 に答える