6/19/11

AUTORISATIONS ASP.NET 2.00


1.1.            Appliquer des autorisations

1.1.1.                  Les balises

Les autorisations permettent de restreindre l 'accès aux utilisateurs à certaines partie du site ou dossier. Par exemple interdire l'accès aux anonyme dans l'administration, interdire l'accès aux utilisateurs inscrit à un dossir d'image etc...
Tout cela se configure par l'intermédiaire du fichier web.config, qui comme vous le voyez est très utile.
Voici la balise à mettre entre :

<authorization>
<
deny users="?"/>
</< FONT><
authorization>

- * signifie "tout le monde"
- ? signifie "utilisateurs anonyme"
- Si cette balise est entre cela s'applique au site entier (projet entier), dans notre cas, personne n'a accès au site.
- Pour autoriser, il suffit de remplacer
deny par allow.
- Pour autoriser un rôle, et non un utilisateur, il suffit de remplacer
users par roles.

1.1.2.                  Exemples d'autorisations

Voici une arborescence assez simple:
arborescence.png
La meilleur politique d'autorisation est d'interdire, tout d'abord, l'accès au site entier, donc:

<authorization>
<
deny users="*"/>
</< FONT><
authorization>

Ensuite, il faut autoriser un par un les pages/dossiers.
Voici les balises à insérer (en dehors de system.web!):

<location path="default.aspx"la page default.aspx
<system.web>
<
authorization>
<
allow users="*" />
</
authorization>
</
system.web>
</
location>

<
location path="MasterPage.Master"la Masterpage
<system.web>
<
authorization>
<
allow users="*" />
</
authorization>
</
system.web>
</
location>
<location path="admin">   Le dossier admin
<system.web>
<
authorization>
<
deny users="?">
<
allow roles="admin" />
</
authorization>
</
system.web>
</
location>
En général, il faut mettre en premier les interdictions (deny), puis les autorisations (allow).

Les autorisations s’avèrent très utiles et compliqué pour des sites complexes, c'est pourquoi cela demande une arborescence de fichier bien ordonné et réfléchi, établir à l'avance les rôles, les utilisateurs, les différents accès au site.
Comme vu ci-dessus, la meilleure politique d'autorisation est de "tout interdire" puis autoriser un par un.

1.2.            WSAT - Web Site Administration Tool

Le WSAT est une interface d'administration simplifié du fichier de configuration, permettant de configurer votre application/ site. Le WSAT est composé de 3 sections:
       - Security
       - Application
       - Provider
Vous avez aussi la possiblité de modifier les profiles par l'intermédiaire du WSAT.
wsat.png

1.2.1.                  Security

La partie sécurité concerne tout ce que l'on a vu jusque là. Grâce à cette administration, vous pourrez ajouter/modifier/supprimer des utilisateurs, ajouter/modifier/supprimer des rôles, ainsi que les autorisations.
wsat_security.png

1.2.2.                  Application

Cette partie concerne la configuration de l'application, notamment la configuration mail (smtp), le debug et tracing avec cassini (serveur web inclus) ou IIS.
wsat_app.png

1.2.3.                  Provider

Vous avez la possiblité de gérer vos providers dans cette partie de l'administration. Bien entendu cela ne permet pas de créer une base de donnée. Ici, vous pouvez soit, choisir un provider pour tous les composants, soit un par un, par exemple vous aurez le choix de choisir un provider pour les memberships, roles, profiles. Si vous ajoutez un provider par l'intermédiaire du fichier web.config, cela apparaîtra dans le WSAT aussi.
pt G � t 4 �L �J an lang=EN-GB style='font-size:10.0pt;font-family: "Courier New";mso-ansi-language:EN-GB;mso-no-proof:yes'>        <tr>
            <td style="width: 99px; height: 350px">
                <asp:ContentPlaceHolder ID="bottom_left" runat="server"></asp:ContentPlaceHolder>
            </td>
            <td style="width: 500px; height: 350px">
                <asp:ContentPlaceHolder ID="bottom_right" runat="server"></asp:ContentPlaceHolder>
            </td>
        </tr>
    </table>
    </form>
</body>
</html>
master_add4.png
Fig 1.3 Exemple d'une MasterPage
Attention à ne rien rajouter dans les balises contentPlaceHolder si vous souhaitez éditer completement la zone. Par exemple si l’on rajoute une image dans la zone « top » de la MasterPage (exemple ci-dessus), cette image apparaîtra sur toutes les pages faisant appel à cette MasterPage.

1.3.         Mise en place d'une MasterPage

Pour appliquer une MasterPage sur une nouvelle page, il faut tout d’abord enlever toute la source HTML qui vous ne sera pas utile, laisser uniquement l’en-tête :
<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
Rajouter ensuite le paramètre MasterPageFile avec l’URL de la MasterPage à appliquer.
<%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/MasterPage.master" CodeFile="Default.aspx.cs" Inherits="_Default" %>
Enfin, il suffit de rajouter des balises contentPlaceHolder avec l’ID d’un contentPlaceHolder de la MasterPage, en voici un exemple :
<asp:Content ContentPlaceHolderID="top" runat="server">
TOP: HELLO, HOW ARE YOU?
</asp:Content>
<asp:Content ContentPlaceHolderID="bottom_left" runat="server">
BOTTOM LEFT: SUPINFO
</asp:Content>
<asp:Content ContentPlaceHolderID="bottom_right" runat="server">
BOTTOM RIGHT: 2005-2006
</asp:Content>
Voici le résultat de notre exemple :
master_apply.png
Fig 1.4 Exemple d'une page avec MasterPage
Les IDs des contentPlaceHolder sont uniques et l’affichage des IDs disponiblent lors de l’auto-complétion correspondent aux IDs des contentPlaceHolder de la MasterPage appellée.

1.4.         Conclusion

Ainsi cette nouvelle fonctionnalité facilite la tâche du développeur en séparant le design du code, mais allège aussi l’architecture de l’application WEB. Grâce au MasterPage en ASP.NET 2.0, vous n’aurez plus besoin de dupliquer le code source du design sur chaque page. Il est bien entendu possible de créer des MasterPage dynamiquement dans le code-behind, de créer d’imbriquer des MasterPage.

0 التعليقات:

Post a Comment

Related Posts Plugin for WordPress, Blogger...