2012-06-14 11 views
5

Estoy intentando rellenar los datos a mi NCCMembershipUser con el siguiente código:Fundición de error: Inserción de datos en MembershipUser personalizada

string name = User.Identity.Name; 

NCCMembershipUser currentUser = (NCCMembershipUser)NCCMembershipProvider.GetUser(name, true); 

currentUser.Salutation = GenderSelect.SelectedValue; 
currentUser.FirstName = TextBoxFirstName.Text; 
currentUser.LastName = TextBoxLastName.Text; 
currentUser.Position = TextBoxPosition.Text; 
... 

try 
{ 
    NCCMembershipProvider u = (NCCMembershipProvider)Membership.Provider; 
    u.UpdateUser(currentUser); 
} 

estoy recibiendo un error "se requiere una referencia de objeto para la no campo estático, método o propiedad 'System.Web.Security.MembershipProvider.GetUser (cadena, int)'"

Si en lugar de utilizar Membership.GetUser() (sin la cadena de name) para acceder al usuario actual, me da una error de conversión, y GetUser() aparece que no se puede anular es

Editar:

El error de fundición que consigo es "[A] NCC.App_Code.NCCMembershipProvider no se puede convertir a [B] NCC.App_Code.NCCMembershipProvider."

Respuesta

1

The casting error I get is "[A]NCC.App_Code.NCCMembershipProvider cannot be cast to [B]NCC.App_Code.NCCMembershipProvider."

Para este error, compruebe que no tiene esa clase en su carpeta App_Code, si es así, moverlo a otra colocar como una nueva carpeta llamada Membership

Eso se encargará del problema de la conversión ya que la aplicación está compilando 2 DLL diferentes en 2 lugares diferentes en las carpetas temporales asp.net.

+1

Creé una carpeta llamada NCCMembership para que no haya ningún problema con el espacio de nombres de membresía en System.Web.Security. Pero eso funcionó. Gracias. – RyanJMcGowan

3

El error indica que el método GetUser no es static, por lo que no se puede invocar sin una instancia de la clase NCCMembershipProvider.

Tienes que agarrar su proveedor antes de su método:

string name = User.Identity.Name; 
NCCMembershipProvider u = (NCCMembershipProvider)Membership.Provider; 

NCCMembershipUser currentUser = (NCCMembershipUser)u.GetUser(name, true); 

currentUser.Salutation = GenderSelect.SelectedValue; 
currentUser.FirstName = TextBoxFirstName.Text; 
currentUser.LastName = TextBoxLastName.Text; 
currentUser.Position = TextBoxPosition.Text; 
// ... 

try 
{ 
    u.UpdateUser(currentUser); 
} 
+0

Esto me lleva de vuelta al error de lanzamiento que mencioné en la pregunta. "[A] NCC.App_Code.NCCMembershipProvider no se puede convertir a [B] NCC.App_Code.NCCMembershipProvider" – RyanJMcGowan

+0

Creo que voy a tener que eludir el proveedor y simplemente usar un control de fuente de datos. Nadie parece saber cómo resolver esto. Debería ser tan simple. – RyanJMcGowan

Cuestiones relacionadas