OK this issue is just as I thought.
You all may be aware that the machine.config file is effectively the web.config for the server(machine) thus it dictates the behaivour of every website that runs on that server.
Many config sections can be overriden in a particular webite by altering those config sections in the site's web.config file providing the machine.config file does not have attributes dissalowing it eg: allowOverride="false".
If you look at the Memebership and Profile machine.config sections of a typical server they will look like this:
(I've omitted the mySQL one for brevity)
Now in YAF we override these sections using:
Unfortuantely CustomProviders that override these sections only work when the server/application is running in full trust. This really isnt a preffered trust level to run in on a shared hosting server.
Commenting out the sections wont work as an object is trying to be created using the values in the config sections so you will no doubt get a 'Object null reference' error.
You can fill in the sections using the default AspNetSqlMembershipProvider and the object will be created - this will allow you to see the homepage and the threads etc BUT any further action where User/Profile objects need to be created will result in an error.
SOLUTION
========
We can try and apply the following Attribute on our custom
membership provider's assembly:
AllowPartiallyTrustedCallersAttribute
this will allow partial trusted caller to load our assembly.
This may work though of have not tried yet - I will post back if I have any joy