SharePoint 2010 Reclamaciones Auth/FBA - Restablecer la contraseña no funciona
-
28-10-2019 - |
Pregunta
Tengo un sitio SP con autenticación de reclamos y configuración de FBA. Dual Auth Win/Forms funciona perfectamente.
Tengo un ASP: Control de control de contraseña en la página de la aplicación. Parece buscar la cuenta correctamente: devolver los mensajes 'no encontrados' si no se encuentra el nombre de usuario. Sin embargo, no puede restablecer la contraseña con la siguiente ejecución:
Exception information:
Exception type: NotImplementedException
Exception message: The method or operation is not implemented.
Thread information:
Thread ID: 10
Thread account name: SERVER01\SPS_Farm
Is impersonating: False
Stack trace: at Microsoft.SharePoint.Administration.Claims.SPClaimsAuthMembershipProvider.GetUser(String name, Boolean userIsOnline)
at System.Web.Security.MembershipProvider.GetUser(String username, Boolean userIsOnline, Boolean throwOnError)
at System.Web.UI.WebControls.PasswordRecovery.AttemptSendPasswordUserNameView()
at System.Web.UI.WebControls.PasswordRecovery.OnBubbleEvent(Object source, EventArgs e)
at System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args)
at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
Gracias por adelantado.
Actualizar:
Yo añadí:
EnablePassWordReset = "verdadero"
a la aplicación web.config y el token-service web.config
Escribió algún código para hacer una prueba manual, y aún así obtuve esto cuando mi código intentó 'restablecer' la contraseña:
Este proveedor no está configurado para permitir reinicios de contraseña. Para habilitar el restablecimiento de contraseña, establezca EnablePassWordReset en "Verdadero" en el archivo de configuración.
Solución
Esto puede no ayudar, ya que parece estar buscando al usuario correctamente ... pero si no está haciendo esto, sé que puede encontrarse con problemas no implementados:
Asegúrese de obtener una instancia del usuario utilizando el proveedor de membresía apropiado.
p.ej
MembershipUser myUser = Membership.Providers["aspMembership"].GetUser(userName, false);
Espero que esto ayude.