2016-12-30 40 views
0

我想記錄用戶活動來自誰和用戶在表中爲特定列更改的觸發器。我知道我不能訪問該網址,但有什麼辦法可以獲得登錄並更新內容的用戶的價值。我可以檢索Asp.net會話從MySql觸發器

我的觸發代碼是:

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 

在這裏我得到我寫在Web.config中的MySQL用戶的價值,但我想在列用戶名的Asp.net會話用戶 。這是可能的和如何.. ??

回答

0

您只能從controllerview訪問session data,而不是在MySQL查詢中。因此,在某些dbmanager類中創建一個日誌函數,並將該會話用戶名值傳遞給該函數,然後將該值從dbmanager類寫入數據庫。

+0

像SQL Server中的Context_info一樣,MySQL中沒有任何東西。我無法改變我的項目中的任何地方的代碼,因爲我想在很多表上使用它。 @ViVi – Minksmnm

+0

它與客戶端有關。它怎麼可以在數據庫中訪問。最好的辦法是創建一個函數,然後使用這個函數記錄數據。 @Minksmnm – ViVi

+0

但如果會話模式更改爲保存在sql中會怎麼樣。我可以檢索它嗎? – Minksmnm