You will not see buckets that were shared with you by another AWS user, in the root listing. To access such buckets, you have to specify /bucketname as an initial Remote directory, when setting up your S3 session. Similarly, when your access key does not have permissions to list buckets, you will need to specify the path to the desired bucket the same way. In scripting, you do that by appending the path to the bucket to a session URL: s3://accesskey:email@example.com/bucket/.
How to specify bucket in C#? I tried to feed it via SessionOptions.HostName (s3.region.amazonaws.com/bucket/), but it gives me an error: "Authentication failed. The request signature we calculated does not match the signature you provided. Check your key and signing method....."