Both your scenarios should work. The "local system" is the computer account in the active directory that you can give share permissions to. I have no idea why it doesn't work for you. But here is what you can do.
- Use an regualar account (its just easier).
- Test your application as console application.
- Tweak the auditing on the client to log everything to the security log. It is done from the local security policy application. And do the same on the server (If you can).
This should be enough to locate the problem.
Update 1: In response to the comment which I think is wrong (but maybe I am...). The service which the comment refers to ( The one without network access) is called local service account( NT AUTHORITY\LocalService ). It is usually used in the identity of application pools, but can be used in services. It is not the same as local system account.
from msdn:
When a service runs under the
LocalSystem account on a computer that
is a domain member, the service has
whatever network access is granted to
the computer account, or to any groups
of which the computer account is a
member.