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

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

5 réponses
Avatar
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

5 réponses

Avatar
Ornette
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" wrote in message
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


Avatar
ThierryP
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" wrote in message
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





Avatar
Jérôme Noirfalise
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":
<?xml version="1.0"?>
<configuration>

...

<location path="documents">
<system.web>
<authorization>
<allow roles="Admins"/>
<deny users="*"/>
</authorization>
</system.web>
</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":
<?xml version="1.0"?>
<configuration>

...

<location path="documents/monFichier.htm">
<system.web>
<authorization>
<allow roles="Admins,toto"/>
<deny users="*"/>
</authorization>
</system.web>
</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" wrote in message
> 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
>
>
>


Avatar
ThierryP
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":
<?xml version="1.0"?>
<configuration>

...

<location path="documents">
<system.web>
<authorization>
<allow roles="Admins"/>
<deny users="*"/>
</authorization>
</system.web>
</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":
<?xml version="1.0"?>
<configuration>

...

<location path="documents/monFichier.htm">
<system.web>
<authorization>
<allow roles="Admins,toto"/>
<deny users="*"/>
</authorization>
</system.web>
</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" wrote in message
> > 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
> >
> >
> >


Avatar
Jérôme Noirfalise
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":
> <?xml version="1.0"?>
> <configuration>
>
> ...
>
> <location path="documents">
> <system.web>
> <authorization>
> <allow roles="Admins"/>
> <deny users="*"/>
> </authorization>
> </system.web>
> </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":
> <?xml version="1.0"?>
> <configuration>
>
> ...
>
> <location path="documents/monFichier.htm">
> <system.web>
> <authorization>
> <allow roles="Admins,toto"/>
> <deny users="*"/>
> </authorization>
> </system.web>
> </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" wrote in message
> > > 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
> > >
> > >
> > >