Today I received an update to a suggestion I made to Microsoft on April 8, 2005. http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=102180 That was before Beta 2 of Whidbey if memory serves me right. My suggestion was to add features to the Membership API that would allow for a user to be renamed. There are many scenerios where we choose to use the full Email address of a user as their username instead of having a seperate username. This works great until the user changes their Email address. (Another reason to have a permanent address that is not affiliated with your ISP) I need to be able to allow users to update their Email address and thus their username/userid.
Apparently my suggestion has been considered for Orcas, but isn't going to make it. Still, I thought it was good that it was at least considered.
In the meantime, I have found that I can rename a user by directly updating the membership database. Microsoft cautions against this when using multiple stores for Membership, Roles, and Profile data because user + application is the identity that is shared across disparate stores. It is my opinion that they should have used a unique identifier instead. The MembershipUser supports such an identity already. Similiarly I wish Windows authenticated users and forms authenticated users shared a common data type for their identities. I believe Microsoft would say that indeed they do and this is the string type that the username or User.Identity.Name. For my purposes I created a database table to map a GUID to Windows identities so that I could normalize all of my UserId's to be unique and meaningless. A Email address as a username carries meaning. That makes a bad primary data key in many scenarios because of the lack of good support for renaming. Keys should never need renaming. Even a Windows UserId can change when its based on a persons name and their legal name changes.
What do you all think?