Custom Membership in ASP.NET MVC 2
Posted
by Interfector
on Stack Overflow
See other posts from Stack Overflow
or by Interfector
Published on 2010-06-12T14:56:05Z
Indexed on
2010/06/12
15:03 UTC
Read the original article
Hit count: 478
Hello,
I'm trying to make my Custom Membership starting from ASP.NET's. I have a users table created by me which has as Primary Key a Guid UserId, exactly the sames as ASP.NET's default user and membership table. I have all the Foreign Key relationships built. However, I cannot insert the user into my custom users table. The data gets inserted correctly into the default ASP.NET's tables. I have tried the following scenarios:
First version
- Receive the user model from POST
- call the CreateUser method of the Membership.class (stuff gets inserted)
- without modifying the user object, I try to insert it using EF's AddObject
I receive the following error:
"Cannot insert the value NULL into column 'LoweredUserName', table 'asp.dbo.aspnet_Users'; column does not allow nulls. INSERT fails.\r\nThe statement has been terminated."} System.Exception {System.Data.SqlClient.SqlException
The error actually makes sense as EF's AddObject doesn't know how to create the LoweredUserName value, and I don't want to do it, this is ASP.NET's job.
Second version
- Receive the user model from POST
- call the CreateUser method of the Membership.class (stuff gets inserted)
- Get the Guid of the freshly inserted system user
- get the ASP.NET's User object and overwrite that of user.User
- get the ASP.NET's Membership object and overwrite that of user.Membership (remember the FKs)
- try again EF's AddObject
- new error
{"The relationship between the two objects cannot be defined because they are attached to different ObjectContext objects."} System.Exception {System.InvalidOperationException}
Don't know what this is, but it certenly doesn't make any sense for me.
After some googleing I think that it has something to do with the context, but as I'm a beginner I don't know how to fix it.
Any ideeas on how to accomplish this task are more than welcomed, especially if they follow some good practices.
Thx
© Stack Overflow or respective owner