I'd say "it's better to not do it". Sorry, I feel the answer to this would be more philosophical than truly programming-related.
Obviously Customer Portal/Guest user cannot enable himself as a damn actual user. It would be wrong on so many levels:
- He/she would be able to select to which Account he wants to be associated, out of many interesting possibilities ;)
- If he can "elevate" himself that would defeat the whole purpose of limiting Cust. Portal user's options in the first place.
- Hackers, data miners & screen scraping applications welcome!
- You guys pay for Cust. Portal licenses.
So... you can hardcode username & pass of a dedicated "SysAdmin" user in your iOS app that'd connect and fix the data. Except what if it's hacked or password expires?
Or you can build something like "request Access" screen? Whatever. A form which they'd fill in (I'm John Smith, I work for company XYZ, my Email is ..., I need access because of Case 0123456, somebody I know at your org is...) and then either a human being looks at it or you leverage Web-To-Lead, Email-To-Case, a Site page or whatever to programmatically decide what to do with it?