Autoriser l'accès à un fichier suivant 1 catégorie d'utilisateur

Le
ThierryP
Bonjour,
Config : framework .net 1.1, asp.net 1, C#, Visual Studio 2003

Soit un site Web avec différentes catégories d'utilisateurs.
Lorsqu'il est de catégorie "A" (et seulement celle là) un utilisateur peut
voir une page qui présente un ensemble de liens vers des fichiers à
visualiser ou à télécharger. Exemple de lien :
http://www.leSite.com/documents/monFichier.htm

Bien que la page présentant un lien vers "monFichier" ne soit pas visible à
un utilisateur d'une autre catégorie que "A" il suffit d'indiquer au
navigateur l'url de "monFichier" pour qu'il soit accessible.
Comment faire pour que cette url soit accessible lorsque l'utilisateur est
de catégorie "A" mais pas lorsqu'il est d'une autre catégorie voir d'aucune
(simple visiteur) ?

Merci
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Ornette
Le #12188431
Bonjour,

on peut utiliser Windows Authentication et mettre des droits sur les
répertoires/fichiers en fonction des utilisateurs (ceci peut se faire par
programmation ou manuellement en fonction des besoins).

on peut aussi utiliser une base de données avec des droits et en fonction
autoriser ou non les accès aux pages.

on peut uiliser les profils .NET

on peut faire pas mal de choses. Quel est votre environnement exact ?

"ThierryP" news:
Bonjour,
Config : framework .net 1.1, asp.net 1, C#, Visual Studio 2003

Soit un site Web avec différentes catégories d'utilisateurs.
Lorsqu'il est de catégorie "A" (et seulement celle là) un utilisateur peut
voir une page qui présente un ensemble de liens vers des fichiers à
visualiser ou à télécharger. Exemple de lien :
http://www.leSite.com/documents/monFichier.htm

Bien que la page présentant un lien vers "monFichier" ne soit pas visible
à
un utilisateur d'une autre catégorie que "A" il suffit d'indiquer au
navigateur l'url de "monFichier" pour qu'il soit accessible.
Comment faire pour que cette url soit accessible lorsque l'utilisateur est
de catégorie "A" mais pas lorsqu'il est d'une autre catégorie voir
d'aucune
(simple visiteur) ?

Merci


ThierryP
Le #12188411
Bonjour,
Merci pour vos pistes mais je ne sais pas trop comment m'y prendre...
J'ai cru comprendre que les profils .NET ne sont dispo qu'avec le framework
2.0.

Il s'agit d'un site dispo sur le Net, en fait le Portal starter Kit :
framework .net 1.1, asp.net 1, C#, Visual Studio 2003.

Ce starter kit s'appuie sur une authentication Forms avec des rôles
utilisateurs stockés dans une BD SQL Server 2005. La sécurité d'accès est
simple à mettre en place lorsqu'il s'agit d'une page aspx mais comment faire
pour interdire l'accès à un .htm, un .doc ou autre dès lors que l'Internaute
a trouvé l'URL ?
Merci

"Ornette" a écrit :

Bonjour,

on peut utiliser Windows Authentication et mettre des droits sur les
répertoires/fichiers en fonction des utilisateurs (ceci peut se faire par
programmation ou manuellement en fonction des besoins).

on peut aussi utiliser une base de données avec des droits et en fonction
autoriser ou non les accès aux pages.

on peut uiliser les profils .NET

on peut faire pas mal de choses. Quel est votre environnement exact ?

"ThierryP" news:
> Bonjour,
> Config : framework .net 1.1, asp.net 1, C#, Visual Studio 2003
>
> Soit un site Web avec différentes catégories d'utilisateurs.
> Lorsqu'il est de catégorie "A" (et seulement celle là) un utilisateur peut
> voir une page qui présente un ensemble de liens vers des fichiers à
> visualiser ou à télécharger. Exemple de lien :
> http://www.leSite.com/documents/monFichier.htm
>
> Bien que la page présentant un lien vers "monFichier" ne soit pas visible
> à
> un utilisateur d'une autre catégorie que "A" il suffit d'indiquer au
> navigateur l'url de "monFichier" pour qu'il soit accessible.
> Comment faire pour que cette url soit accessible lorsque l'utilisateur est
> de catégorie "A" mais pas lorsqu'il est d'une autre catégorie voir
> d'aucune
> (simple visiteur) ?
>
> Merci





Jérôme Noirfalise
Le #12188381
Bonjour,

Dans le web.config, tu peux restreindre l'accès à des utilisateurs
appartenant à certains rôles:

Voici 2 exemples avec: http://www.leSite.com/documents/monFichier.htm

1) Donner uniquement l'accès aux utilisateurs appartenant au rôle "Admins"
pour le répertoire "documents":
<configuration>

...

<location path="documents">
<authorization>
<allow roles="Admins"/>
<deny users="*"/>
</authorization>
</location>
</configuration>

2) Donner uniquement l'accès aux utilisateurs appartenant aux rôles "Admins"
et "toto" pour le fichier "monFichier.htm" du répertoire "documents":
<configuration>

...

<authorization>
<allow roles="Admins,toto"/>
<deny users="*"/>
</authorization>
</location>
</configuration>

Amicalement,

Jérôme Noirfalise
---------------------
MCSD .NET
.NET Consultant @ AUSY Luxembourg
http://www.jnoirfal.be


"ThierryP" a écrit :

Bonjour,
Merci pour vos pistes mais je ne sais pas trop comment m'y prendre...
J'ai cru comprendre que les profils .NET ne sont dispo qu'avec le framework
2.0.

Il s'agit d'un site dispo sur le Net, en fait le Portal starter Kit :
framework .net 1.1, asp.net 1, C#, Visual Studio 2003.

Ce starter kit s'appuie sur une authentication Forms avec des rôles
utilisateurs stockés dans une BD SQL Server 2005. La sécurité d'accès est
simple à mettre en place lorsqu'il s'agit d'une page aspx mais comment faire
pour interdire l'accès à un .htm, un .doc ou autre dès lors que l'Internaute
a trouvé l'URL ?
Merci

"Ornette" a écrit :

> Bonjour,
>
> on peut utiliser Windows Authentication et mettre des droits sur les
> répertoires/fichiers en fonction des utilisateurs (ceci peut se faire par
> programmation ou manuellement en fonction des besoins).
>
> on peut aussi utiliser une base de données avec des droits et en fonction
> autoriser ou non les accès aux pages.
>
> on peut uiliser les profils .NET
>
> on peut faire pas mal de choses. Quel est votre environnement exact ?
>
> "ThierryP" > news:
> > Bonjour,
> > Config : framework .net 1.1, asp.net 1, C#, Visual Studio 2003
> >
> > Soit un site Web avec différentes catégories d'utilisateurs.
> > Lorsqu'il est de catégorie "A" (et seulement celle là) un utilisateur peut
> > voir une page qui présente un ensemble de liens vers des fichiers à
> > visualiser ou à télécharger. Exemple de lien :
> > http://www.leSite.com/documents/monFichier.htm
> >
> > Bien que la page présentant un lien vers "monFichier" ne soit pas visible
> > à
> > un utilisateur d'une autre catégorie que "A" il suffit d'indiquer au
> > navigateur l'url de "monFichier" pour qu'il soit accessible.
> > Comment faire pour que cette url soit accessible lorsque l'utilisateur est
> > de catégorie "A" mais pas lorsqu'il est d'une autre catégorie voir
> > d'aucune
> > (simple visiteur) ?
> >
> > Merci
>
>
>


ThierryP
Le #12188351
Bonjour,
Merci pour l'info.
Petite question :
Comment l'appli fait elle le lien entre les rôles et utilisateurs
enregistrés dans la base de donnée (puisqu'il s'agit d'une authentification
par formulaire) et les rôles et utilisateurs précisés dans web.config qui
permettent de limiter l'accès aux fichier ? J'imagine que c'est à l'aide d'un
cookie enregistré par l'appli sur le client au moment où l'Internaute se
connecte ?... Merci de me confirmer ou pas.

Je me permets de préciser que par défaut IIS n'applique pas automatiquement
l'authentification aux fichiers .htm et .html. Pour cela il convient de faire
sous IIS :
- clic droit/propriétés sur le site
- configurayion/ajouter/parcourir...
- choisir aspnet_isapi.dll (dans C:WINDOWSMicrosoft.NETFramework"version
du framework")
- taper .htm dans extension
- OK
Reproduire la même chose pour .html

Encore merci.
Thierry

"Jérôme Noirfalise" a écrit :

Bonjour,

Dans le web.config, tu peux restreindre l'accès à des utilisateurs
appartenant à certains rôles:

Voici 2 exemples avec: http://www.leSite.com/documents/monFichier.htm

1) Donner uniquement l'accès aux utilisateurs appartenant au rôle "Admins"
pour le répertoire "documents":
<configuration>

...

<location path="documents">
<authorization>
<allow roles="Admins"/>
<deny users="*"/>
</authorization>
</location>
</configuration>

2) Donner uniquement l'accès aux utilisateurs appartenant aux rôles "Admins"
et "toto" pour le fichier "monFichier.htm" du répertoire "documents":
<configuration>

...

<authorization>
<allow roles="Admins,toto"/>
<deny users="*"/>
</authorization>
</location>
</configuration>

Amicalement,

Jérôme Noirfalise
---------------------
MCSD .NET
.NET Consultant @ AUSY Luxembourg
http://www.jnoirfal.be


"ThierryP" a écrit :

> Bonjour,
> Merci pour vos pistes mais je ne sais pas trop comment m'y prendre...
> J'ai cru comprendre que les profils .NET ne sont dispo qu'avec le framework
> 2.0.
>
> Il s'agit d'un site dispo sur le Net, en fait le Portal starter Kit :
> framework .net 1.1, asp.net 1, C#, Visual Studio 2003.
>
> Ce starter kit s'appuie sur une authentication Forms avec des rôles
> utilisateurs stockés dans une BD SQL Server 2005. La sécurité d'accès est
> simple à mettre en place lorsqu'il s'agit d'une page aspx mais comment faire
> pour interdire l'accès à un .htm, un .doc ou autre dès lors que l'Internaute
> a trouvé l'URL ?
> Merci
>
> "Ornette" a écrit :
>
> > Bonjour,
> >
> > on peut utiliser Windows Authentication et mettre des droits sur les
> > répertoires/fichiers en fonction des utilisateurs (ceci peut se faire par
> > programmation ou manuellement en fonction des besoins).
> >
> > on peut aussi utiliser une base de données avec des droits et en fonction
> > autoriser ou non les accès aux pages.
> >
> > on peut uiliser les profils .NET
> >
> > on peut faire pas mal de choses. Quel est votre environnement exact ?
> >
> > "ThierryP" > > news:
> > > Bonjour,
> > > Config : framework .net 1.1, asp.net 1, C#, Visual Studio 2003
> > >
> > > Soit un site Web avec différentes catégories d'utilisateurs.
> > > Lorsqu'il est de catégorie "A" (et seulement celle là) un utilisateur peut
> > > voir une page qui présente un ensemble de liens vers des fichiers à
> > > visualiser ou à télécharger. Exemple de lien :
> > > http://www.leSite.com/documents/monFichier.htm
> > >
> > > Bien que la page présentant un lien vers "monFichier" ne soit pas visible
> > > à
> > > un utilisateur d'une autre catégorie que "A" il suffit d'indiquer au
> > > navigateur l'url de "monFichier" pour qu'il soit accessible.
> > > Comment faire pour que cette url soit accessible lorsque l'utilisateur est
> > > de catégorie "A" mais pas lorsqu'il est d'une autre catégorie voir
> > > d'aucune
> > > (simple visiteur) ?
> > >
> > > Merci
> >
> >
> >


Jérôme Noirfalise
Le #12188341
Bonjour,

Dans le fichier "Global.asax "du portail, tu trouves l'event
"Application_AuthenticateRequest":
void Application_AuthenticateRequest(Object sender, EventArgs e)
{
if (Request.IsAuthenticated == true)
{

String[] roles;

if ((Request.Cookies["portalroles"] == null) ||
(Request.Cookies["portalroles"].Value == ""))
{
...
}
else
{
...
}

Context.User = new GenericPrincipal(Context.User.Identity, roles);
}
}

Dans cette méthode, on vérifie d'abord si l'utilisateur pour la requête en
cours est authentifié (dans le cas du portail, l'authentification se fait
dans le UserControl "Signin.acsx").
Si il est authentifié, on regarde si un cookie contenant les rôles existe.
- Si c'est pas le cas, on récupère les rôles relatifs à l'utilisateur dans
la base de données et on crée un cookie contenant ses rôles.
- Si c'est le cas, on récupère les roles directement dans le cookie.
Ensuite, on spécifie l'identité de l'utilisateur et ses rôles pour la
requête en cours:
Context.User = new GenericPrincipal(Context.User.Identity, roles);

Amicalement,

Jérôme Noirfalise
---------------------
MCSD .NET
.NET Consultant @ AUSY Luxembourg
http://www.jnoirfal.be


"ThierryP" a écrit :

Bonjour,
Merci pour l'info.
Petite question :
Comment l'appli fait elle le lien entre les rôles et utilisateurs
enregistrés dans la base de donnée (puisqu'il s'agit d'une authentification
par formulaire) et les rôles et utilisateurs précisés dans web.config qui
permettent de limiter l'accès aux fichier ? J'imagine que c'est à l'aide d'un
cookie enregistré par l'appli sur le client au moment où l'Internaute se
connecte ?... Merci de me confirmer ou pas.

Je me permets de préciser que par défaut IIS n'applique pas automatiquement
l'authentification aux fichiers .htm et .html. Pour cela il convient de faire
sous IIS :
- clic droit/propriétés sur le site
- configurayion/ajouter/parcourir...
- choisir aspnet_isapi.dll (dans C:WINDOWSMicrosoft.NETFramework"version
du framework")
- taper .htm dans extension
- OK
Reproduire la même chose pour .html

Encore merci.
Thierry

"Jérôme Noirfalise" a écrit :

> Bonjour,
>
> Dans le web.config, tu peux restreindre l'accès à des utilisateurs
> appartenant à certains rôles:
>
> Voici 2 exemples avec: http://www.leSite.com/documents/monFichier.htm
>
> 1) Donner uniquement l'accès aux utilisateurs appartenant au rôle "Admins"
> pour le répertoire "documents":
> > <configuration>
>
> ...
>
> <location path="documents">
> > <authorization>
> <allow roles="Admins"/>
> <deny users="*"/>
> </authorization>
> > </location>
> </configuration>
>
> 2) Donner uniquement l'accès aux utilisateurs appartenant aux rôles "Admins"
> et "toto" pour le fichier "monFichier.htm" du répertoire "documents":
> > <configuration>
>
> ...
>
> > > <authorization>
> <allow roles="Admins,toto"/>
> <deny users="*"/>
> </authorization>
> > </location>
> </configuration>
>
> Amicalement,
>
> Jérôme Noirfalise
> ---------------------
> MCSD .NET
> .NET Consultant @ AUSY Luxembourg
> http://www.jnoirfal.be
>
>
> "ThierryP" a écrit :
>
> > Bonjour,
> > Merci pour vos pistes mais je ne sais pas trop comment m'y prendre...
> > J'ai cru comprendre que les profils .NET ne sont dispo qu'avec le framework
> > 2.0.
> >
> > Il s'agit d'un site dispo sur le Net, en fait le Portal starter Kit :
> > framework .net 1.1, asp.net 1, C#, Visual Studio 2003.
> >
> > Ce starter kit s'appuie sur une authentication Forms avec des rôles
> > utilisateurs stockés dans une BD SQL Server 2005. La sécurité d'accès est
> > simple à mettre en place lorsqu'il s'agit d'une page aspx mais comment faire
> > pour interdire l'accès à un .htm, un .doc ou autre dès lors que l'Internaute
> > a trouvé l'URL ?
> > Merci
> >
> > "Ornette" a écrit :
> >
> > > Bonjour,
> > >
> > > on peut utiliser Windows Authentication et mettre des droits sur les
> > > répertoires/fichiers en fonction des utilisateurs (ceci peut se faire par
> > > programmation ou manuellement en fonction des besoins).
> > >
> > > on peut aussi utiliser une base de données avec des droits et en fonction
> > > autoriser ou non les accès aux pages.
> > >
> > > on peut uiliser les profils .NET
> > >
> > > on peut faire pas mal de choses. Quel est votre environnement exact ?
> > >
> > > "ThierryP" > > > news:
> > > > Bonjour,
> > > > Config : framework .net 1.1, asp.net 1, C#, Visual Studio 2003
> > > >
> > > > Soit un site Web avec différentes catégories d'utilisateurs.
> > > > Lorsqu'il est de catégorie "A" (et seulement celle là) un utilisateur peut
> > > > voir une page qui présente un ensemble de liens vers des fichiers à
> > > > visualiser ou à télécharger. Exemple de lien :
> > > > http://www.leSite.com/documents/monFichier.htm
> > > >
> > > > Bien que la page présentant un lien vers "monFichier" ne soit pas visible
> > > > à
> > > > un utilisateur d'une autre catégorie que "A" il suffit d'indiquer au
> > > > navigateur l'url de "monFichier" pour qu'il soit accessible.
> > > > Comment faire pour que cette url soit accessible lorsque l'utilisateur est
> > > > de catégorie "A" mais pas lorsqu'il est d'une autre catégorie voir
> > > > d'aucune
> > > > (simple visiteur) ?
> > > >
> > > > Merci
> > >
> > >
> > >


Publicité
Poster une réponse
Anonyme