I have been working on setting up an force.com site that uses Overage Authenticated Website User Licenses to authenticate the users. I have been able to successfully give the users read/write access to custom objects via the Customer Portal Settings page. I have also set up a Sharing Setting object related to the Profile my Authenticated Website Licenses are under and gave access to objects based off objects the fact that their contactID fields that matches their user's Contact ID field. The API states

"Select Only records where the high-volume portal user’s contact matches to give high-volume portal users access only to the records that are associated with their contacts. For example, choosing this option for cases would give users access only to the cases that they filed, or cases that were filed on their behalf by a support representative"

Reading this it doesn't seem like I would be able to give them access to their respective contact record through these sharing settings.

I currently can get no contact fields to display on my visualforce pages. I need to be able to let the users edit their information saved in their contact. I have been searching through the API but maybe I am missing something. I have seen in other people's questions/experiences that they are able to access the contact objects.

Like this post to StackExchange: Give High Volume Customer Portal User access to Contacts

Do I have to do this through a account that is linked to the same contact or is there a way that I can just give them permission to edit their own contact records?

Thanks for the help!

2 Answers 2


For all cases where portal licenses don't permit you to do what you want, create a wrapper class of the fields you need, query the contact by id, and let the customer edit. Then take the wrapper and write back to the contact.

I've had to do this for the very same reason and it's very straightforward.

Also, I think I read somewhere that the customer community replacement for the portal fixed this issue, so there may be a non-code solution.

  • You are saying that I make a ContactWrapper object and give it data members for all the fields I want edited. Let the customer edit these data members and then update the Contact object with the data member's values?
    – Chris
    Sep 18, 2013 at 12:40
  • Chris, yes, exactly! This pattern works for anything the license model "doesn't allow". It's pretty flexible and open as long as you don't mind a little code. Sep 20, 2013 at 13:27
  • Thanks. This worked perfectly and gave me access to all the necessary fields. Appreciate it greatly!!
    – Chris
    Sep 23, 2013 at 16:55

Authenticated website users do not have access to the Contact object. While Sharing Sets would accomplish this for a high volume portal license, you would need to be using a different license type like Service Cloud portal, Customer Community for read access to contact and Partner Community for full CRUD on Contacts (in addition to the full sharing model). You can also use one of the deprecated customer portal license types like Customer Portal Manager. Here is a helpful user license matrix diagram from Wes Nolte and the folks at tquila:


And here is Salesforce.com official license type documentation: http://org62.my.salesforce.com/help/doc/en/users_understanding_license_types.htm

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .