Well you can give the logged users permission to the page which have your weBparts. And disable the anonymous users to access this page. To give permission to the users check these two msdn pages:
Control authorization Permissions[
^]
ASP.Net Authorization[
^]
Keep in mind "?" is for anonymous users.
If you dont want to use it this way another option available. To do it; you can implement a set of permissions query methods in either your business objects or your controller. Examples: CanRead(), CanEdit(), CanDelete(), CanAccess()..
When the page renders, it needs to query the business object and determine the users authorized capabilities and enable or disable functionality based on this information. The business object can, in turn, use Roles or additional database queries to determine the active user's permissions.
Good luck.