2016-12-30 4 views
0

私は特定の列のテーブルでWhoとWhatがユーザーが変更したトリガーからユーザーアクティビティを記録します。私はURLにアクセスできないことを知っていますが、ログインして何かを更新したユーザーの価値を得る方法はあります。MySqlトリガーからAsp.netセッションを取得することができます

私のトリガ・コードは次のとおりです。

ここで私は私がWeb.configファイルに書かれている MySQLユーザの値を取得していますが、私は列 ユーザー名でAsp.netセッション・ユーザーが欲しい
CREATE Trigger `Drfafterupdate` 
after update 
on `drftemplate` for each row 
Begin 
DECLARE vUser varchar(50); 
SELECT USER() INTO vUser; 

Insert into logdbchanges (Username,OldValue,NewValue,TableName,ColumnName,Url,DateTime) 
Values (vUser,(select Old.WaterSourceNotes from `drftemplate` where DRFTemplateId = OLD.DRFTemplateId),(select WaterSourceNotes from `drftemplate` where DRFTemplateId = New.DRFTemplateId),'drftemplate','','',Now()); 

END 

。それは可能なのか?

答えて

0

session dataにはcontrollerviewからのみアクセスできますが、MySQLのクエリではアクセスできません。したがって、一部のdbmanagerクラスでログ関数を作成し、セッションのユーザー名の値を関数に渡し、その値をdbmanagerクラスのデータベースに書き込みます。

+0

SQL ServerのContext_infoと同様に、MySQLには何もありません。私は多くのテーブルでこれをしたいので、私のプロジェクトのどこにでもコードを変更することはできません。 @ViVi – Minksmnm

+0

これはクライアント側に関係するものです。どのようにしてデータベース内でアクセスできるのか最も良いことは、関数を作成し、この関数を使用してデータを記録することです。 @Minksmnm – ViVi

+0

しかし、セッションモードがsqlで保存するように変更された場合はどうなりますか?それから私はそれを取り戻すことができますか? – Minksmnm

関連する問題