How can I make a material that is only lit from the sun light?

I’m using a particle effect to simulate volumetic fog, but it picks up too much light from the indirect lighting cache and or other sources. Disabling the indirect lighting cache on the FX actor only resulted in it being over lit by the skylight~
I read that it is impossible to isolate a light like the way I want in the Forward rendering pipeline, but I also vaguely remember that it was possible to recreate the lighting math inside an Unlit material and feed the output to its emisive color, but I can’t find where that was explained…

So, if no one knows an easier way, how can I make an Unlit material fake its own light and shadowing from a static directional point?

Create some vector to specify light direction. (LD)
Another one for light color. (LC)
Add normal map, transform it into world space. (WN)
Now make LC * Dot(WN, LD).

Thanks, but how can I make it take shadows into account?

It is impossible with unlit material.
As an option you could try to use lit material but without base color, plug that fake lightning into emissive.