¿Por qué no se establece el nombre de la aplicación para mi proveedor de roles personalizado?

Implementé un proveedor de roles personalizado para una aplicación ASP.NET. Derivé mi clase de System.Web.Security.RoleProvider e implementé todos los métodos y propiedades abstractos. Estoy configurando mi proveedor con un applicationName en web.config, a la:

 <roleManager enabled="true" defaultProvider="CustomRoleProvider">
  <providers>
    <clear/>
    <add name="CustomRoleProvider" type="MvcApplication1.CustomRoleProvider" applicationName="Foo"/>
  </providers>
</roleManager>

Sin embargo, la propiedad ApplicationName de mi proveedor no se establece en consecuencia. ¿Por qué?

preguntado el 12 de junio de 12 a las 17:06

1 Respuestas

Además de implementar los métodos abstractos de System.Web.Security.RoleProvider, también debe anular el Initialize() método. Los atributos en el elemento del proveedor en web.config que no son manejados por System.Configuration.ProviderSettings, como applicationName, se pasan al proveedor de roles personalizado a través de Initialize(). Agregar lo siguiente a su implementación de Initialize() establecerá la propiedad ApplicationName del proveedor de roles personalizado en el valor proporcionado por el atributo applicationName en web.config:

   if (config["applicationName"] != null)
       ApplicationName = config["applicationName"];

Respondido el 12 de junio de 12 a las 17:06

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.