Usually just capture the Contact and their Account (as email addresses etc may change over time) unless there is a specific requirement to capture other details at the time of submission.
Add a Contact Lookup to the Table your form is for. Then use the Portal/Power Pages Management App and go your your form definition and then do one of:
- Under "Additional Settings" Tab check the Associate Current Portal User and select the Lookup field;
- or Add a form Metadata record (type = attribute) select the Lookup for Attribute Logical Name, then in the Set Value On Save section, for Type select Current Portal User and in Form Attribute select Contact(contactid)
Both work the same for capturing the Contact, the Metadata record allows you to populate other values from the Contact record (e.g. can do the same with parent Account into an Account Lookup).
I usually do 2 Lookups one for Created By and another for Modified By (and populate 1 on the Insert form and the other on the Edit form) and will also do a Modified Date field (so can see what time something was modified from the portal vs a Dataverse user)
(Similar settings also exist on the Steps in multistep forms)