Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Role provider

3 réponses
Avatar
Delf
Bonsoir.

J'ai cr=E9=E9 une classe ExampleRoleProvider qui h=E9rite de RoleProvider.

J'ai impl=E9ment=E9 GetRolesForUser() comme suit :

public override string[] GetRolesForUser(string pUsername)
{
List<string> roles =3D new List<string>();

roles.Add("Guest");

if (pUsername =3D=3D "delf")
{
roles.Add("Admin");
roles.Add("Manager");
}

return roles.ToArray();
}

Dans une classe de Page, j'ajoute l'attribut :

[PrincipalPermission(SecurityAction.Demand, Role=3D"Admin_")]
public partial class UserSessions : BasePage
{
//...
}

J'acc=E8de =E0 la page, j'ai bien une Security Exception.
Je rappelle la page, et l=E0, je rentre *de nouveau* dans GetRolesForUser
().

Comportement attendu ?

Si oui, si mon provider se base sur une DB, alors je ferai =E0 chaque
fois les acc=E8s ?!
A moi de g=E9rer le cache ?

Pourtant, j'ai vu une propri=E9t=E9 TrucRoleCached=3Dtrue dans
HttpContext.Current.User.*.

Merci.

--
Delf

3 réponses

Avatar
Delf
On 12 fév, 16:03, Delf wrote:

[PrincipalPermission(SecurityAction.Demand, Role="Admin_")]
public partial class UserSessions : BasePage
{
  //...

}



Quel intérêt quand on peut mettre tout simplement la section ci-
dessous dans le Web.config ?

<location path="Pages/WebConfigEditor.aspx">
<system.web>
<authorization>
<allow users="Admin_" />
<deny users="*"/>
</authorization>
</system.web>
</location>

Merci.

--
Delf
Avatar
Fred
in
news:,
Delf wrote :

On 12 fév, 16:03, Delf wrote:

[PrincipalPermission(SecurityAction.Demand, Role="Admin_")]
public partial class UserSessions : BasePage
{
//...

}



Quel intérêt quand on peut mettre tout simplement la section ci-
dessous dans le Web.config ?

<location path="Pages/WebConfigEditor.aspx">
<system.web>
<authorization>
<allow users="Admin_" />
<deny users="*"/>
</authorization>
</system.web>
</location>

Merci.



Bonjour,

Pour la première question, il existe un attribut cacheRolesInCookie et
un attribut cookieName pour l'élément roleManager du Web.Config

Pour la seconde question, je ne vois pas de différence.
J'utilise la première méthode dans les services web pour affiner l'accès
fonction par fonction.
Pour un accès global à une page (aspx ou asmx), j'utilise plus
volontiers le Web.Config


--
Fred

Avatar
Delf
On 13 fév, 06:43, "Fred" wrote:

Pour la première question, il existe un attribut cacheRolesInCookie et
un attribut cookieName pour l'élément roleManager du Web.Config



Ok, merci, je vais regarder ça.

Pour la seconde question, je ne vois pas de différence.
J'utilise la première méthode dans les services web pour affiner l'ac cès
fonction par fonction.



On peut donc utiliser l'attrubut de sécurité sur les WebMethodes, je
ne savais pas.
Intéressant, bon à savoir.

Pour un accès global à une page (aspx ou asmx), j'utilise plus
volontiers le Web.Config



Le seul avantage que je vois c'est que les droits sont dans le
compilé, difficilement modifiable par rapport au Web.config avec
Notepad =)

--
Delf