Tengo el siguiente en mi web.config:En mi clase codebehind, ¿cómo recupero los roles autorizados?
<location path="RestrictedPage.aspx">
<system.web>
<authorization>
<allow roles="Group1Admin, Group3Admin, Group7Admin"/>
<deny users="*"/>
</authorization>
</system.web>
</location>
Dentro RestrictedPage.aspx.cs, ¿cómo puedo recuperar la colección papeles permitido que contiene Group1Admin, Group3Admin y Group7Admin?
Aquí es por lo que pido:
El web.config está manejando la autorización a la página. Eso funciona bien Pero voy a tener un par de estas páginas (por ejemplo, RestrictedPage.aspx, RestrictedPage2.aspx, RestrictedPage3.aspx). Cada una de estas páginas tendrá mi control web personalizado. Y cada una de estas páginas tendrá diferentes roles permitidos. Mi webcontrol tiene una lista desplegable. Las opciones dentro del menú desplegable dependen de la intersección de los roles del usuario y los roles permitidos de la página.
Como se menciona a continuación, probablemente funcione la búsqueda en web.config con XPath. Solo esperaba algo más framework-y. Algo así como SiteMap. Cuando pongo roles en mi web.sitemap, puedo tomarlos usando SiteMap.CurrentNode.Roles (mi sitio web usa autenticación de Windows, así que no puedo usar web.sitemap para el recorte de seguridad y prefiero mantener roles en solo uno archivo).
¡Perfecto! Aquí está mi última línea: Sección de AuthorizationSection = (Sección de Autorización) WebConfigurationManager.GetSection ("system.web/authorization", Request.Path); Request.Path navega a location = "RestrictedPage.aspx" (cuando es la página actual). Gracias! –
Para obtener el web.config actual, para la variable configPath, reemplácela o establézcala en "~" como se describe en esta respuesta [aquí] (http://stackoverflow.com/a/4134213/603807) – dyslexicanaboko