Hi, Im not an Episerver Official but we had the same bother when upgrading from 6 to 7 and 8.
Yes, UserId must be "String:firstname.lastname@example.org"
We had problems with duplicate useraccount in our multi site. So during the upgrade, we needed to remove duplicate accounts in CLS_CONTACTS. Since UserId do not allow duplicate.
And yes, when you log in, it automaticly adds in cls_contacts, from any membershipprovider!
NOTICE, when upgrading, we needed to run in version 7.15 before going up to later version (in our scenario 7.19.2) (some error creating the UserId och Password in CLS_Contacts)
We also needed to populate UserID manualy:
update [dbCommerceManager_v8].[dbo].[cls_Contact] set [cls_Contact].UserId = 'String:' + convert(nvarchar(100), [cls_Contact].[Email])
We have upgraded our CMS and Commerce to 9 from 7 and have noticed a big issue that took us a few days to work out.
We have a user in both the CMS aspnet_users and the same user in cls_Contact. In 7 the UserId in the aspnet_users would be in the cls_Contact UserId column.
Since we did the upgrade we noticed that a logged in user couldn't buy anything on the site. After some investigating we noticed when the user logs in to the front end of the site they were being duplicated in the cls_Contact table.
When we register a new user to site we now notice that the UserId in the cls_Contact table is the person's username prefixed with String: for example String: email@example.com and no longer the UserId from aspnet_Users.
Is this correct? can you tell us if there are any issues that we need to be aware of?