Thanks for your help. Unfortunately I have not been able to get the following to work:
NavigateURL(PortalSettings.UserTabId, "Profile", "UserID=" & UserID.ToString)
It ignores the UserID parameter (which has a value of 3) and redirects to the Administrator Account profile. The string that results from NavigateURL is:
. . . /tabid/58/ctl/Profile/UserID/3/Default.aspx
which after the redirection results in:
. . . /Prayer/tabid/58/ctl/Profile/UserID/2/Default.aspx
In my development installation, PortalSettings.UserTabID returns -1. TabId 58 is the tab (Prayer) on which the module in development sets.
I also tried PortalSettings.AdminTabID which is 38 in my installation. The url returned by Navigate URL is:
. . . /Admin/tabid/38/ctl/Profile/UserID/3/Default.aspx
Following redirection, this ends up at:
. . . /Admin/tabid/38/ctl/Profile/UserID/2/Default.aspx
with the UserID again being ignored.
Finally, if I manually insert the value of 42 (which is the correct Admin TabID for editing a user profile) into the NavigateUrl TabID parameter, NavigateUrl returns:
. . . /Admin/UserAccounts/tabid/42/ctl/Profile/UserID/3/Default.aspx"
which when redirected again ignores the UserID and opens the Administrator Account's own profile for editing.
So far, the only method that works is that I originally posted which explicitely inserts the UserAccounts ModuleID as an additional parameter ("mid=") to NavigateUrl. This returns the correct (for a default installation) of:
. . . /Admin/UserAccounts/tabid/42/ctl/Edit/mid/354/UserID/3/Default.aspx
and correctly redirects to:
. . . /Admin/UserAccounts/tabid/42/ctl/Edit/mid/354/UserID/3/Default.aspx
I think I'll use that as a default but as was also suggested (since a custom user registration/profile module might be installed on a different TabID) to include on the module settings page fields for a custom UserAccounts TabID, ControlKey, and UserID field name to be specified. I'm still concerned that a ModuleDefinitions FriendlyName can change. At least it's been a real good exercise in learning all the overloads of NavigateUrl !!