Triggers Salesforce Apex System.runAs未反映在触发器上下文中

Triggers Salesforce Apex System.runAs未反映在触发器上下文中,triggers,salesforce,profile,apex,dml,Triggers,Salesforce,Profile,Apex,Dml,我有一个测试类,用这个代码 System.debug(UserInfo.getProfileId()); Profile p = [SELECT Id FROM Profile WHERE Name = 'Standard User']; User u = new User(ProfileId = p.Id, ...); System.runAs(u) { System.debug(UserInfo.getProfileId()); Database.delete(recor

我有一个测试类,用这个代码

System.debug(UserInfo.getProfileId());

Profile p = [SELECT Id FROM Profile WHERE Name = 'Standard User'];
User u = new User(ProfileId = p.Id, ...);
System.runAs(u)
{
    System.debug(UserInfo.getProfileId());

    Database.delete(records, false);
}
在为此DML操作触发的触发器处理程序中,当我输出当前用户的Id时

System.debug(UserInfo.getProfileId());
它没有获取我在
System.runAs
方法中设置的用户的配置文件Id。它获取用户的配置文件Id。。。我,即系统管理员,当它应该是标准用户时


为什么?。。。如何修复?

触发器执行在系统上下文级别。将您的登录名放在用户上下文的Apex类(带有共享)中