I'm at the stage in a project where I need to extend the user membership fields in a asp.net mvc website.

I have gone through these different thought processes.

1. Using "username" to join users to records. Very bad idea due to a user wanting to change their username etc.
2. Then I thought I could connect the guid of userId to the other tables.
3. Then I thought that using guid might be bad if I needed to use the id as a simple in the future. So I was setting up a link table to joing guid to ints.
4. Decided that i didn't need that so went back to using guid to link things together, which makes requests more simple.
5. Read loads of discussions of performance being hideous when using guid as clustered index.

I'm now confused, does this mean that the default asp.net authentication is awful for performance?

I know one shouldn't think about performance too soon, but I do hope to end up with this app being very popular, so if I have to "roll my own" authentication provider, I guess maybe I should do it now.

Any links in the direction of actually doing this would be greatly appreciated as I have been abstracted from this due to asp.net membership stuff doing everything for me.

Thanks everyone.