【问题标题】:can i retrieve Asp.net Session From MySql Trigger我可以从 MySql 触发器中检索 Asp.net 会话吗
【发布时间】:2016-12-30 07:38:58
【问题描述】:

我想从触发器记录用户活动,该触发器表明用户在表中针对特定列进行了更改。我知道我无法访问该 url,但有什么方法可以获取已登录并更新某些内容的用户的值。

我的触发代码是:

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 会话用户。是否可能以及如何..?

【问题讨论】:

    标签: c# mysql asp.net asp.net-mvc


    【解决方案1】:

    您只能从controllerview 访问session data,不能在MySQL 查询中访问。因此,在某个 dbmanager 类中创建一个日志函数,并将会话用户名值传递给该函数,然后将该值从 dbmanager 类写入数据库。

    【讨论】:

    • 就像 SQL Server 中的 Context_info 一样,MySQL 中没有任何东西。我不能在我的项目中随处更改代码,因为我希望在许多表中都这样做。 @ViVi
    • 它与客户端有关。如何在数据库内部访问它。最好的办法是创建一个函数,然后使用该函数记录数据。 @Minksmnm
    • 但是如果将会话模式更改为保存在 sql 中会怎样。那我可以找回来吗?
    • 你这是什么意思?
    • 如果我使用 SQL 会话模式,会话存储在 SQL 中,那么我可以访问它吗? @ViVi
    猜你喜欢
    • 2010-09-20
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 2012-06-12
    • 2011-02-05
    • 2010-12-23
    • 2014-02-13
    • 2016-05-22
    相关资源
    最近更新 更多