j'ai une petite question d'architecture :
je voudrais cr=E9er un projet aspnet avec plusieurs pages=20
d'entr=E9e possibles : admin.aspx, default.aspx.
Je voudrais =E9galement utiliser l'autentification=20
<authentication mode=3D"Forms"> pour g=E9rer facilement les=20
sessions.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Guillaume Davion
L'idéal est de créer plusieurs répertoires avec plusieurs fichiers web.config.
Tu pourrais par exemple avoir l'accès autorisé à tous pour le niveau racine, avec tes deux pages d'entré, et un sous-répertoire avec un web.config interdisant l'accès aux anonymes.
Le défaut est que de base, la page de redirection (celle où tu te fais envoyer quand tu tente d'accéder à une ressource interdite) est unique.
L'idéal est de créer plusieurs répertoires avec plusieurs fichiers
web.config.
Tu pourrais par exemple avoir l'accès autorisé à tous pour le niveau
racine, avec tes deux pages d'entré, et un sous-répertoire avec un
web.config interdisant l'accès aux anonymes.
Le défaut est que de base, la page de redirection (celle où tu te
fais envoyer quand tu tente d'accéder à une ressource interdite) est
unique.
L'idéal est de créer plusieurs répertoires avec plusieurs fichiers web.config.
Tu pourrais par exemple avoir l'accès autorisé à tous pour le niveau racine, avec tes deux pages d'entré, et un sous-répertoire avec un web.config interdisant l'accès aux anonymes.
Le défaut est que de base, la page de redirection (celle où tu te fais envoyer quand tu tente d'accéder à une ressource interdite) est unique.
Fred
Bonsoir, S'il s'agit d'une seule application, mais qu'au sein de cette application les différentes pages ou répertoires doivent avoir des autorisations différentes, je pense que tu peux personnaliser ton web.config en ajoutant des balises <location>. Pour l'utilisation de l'authentification Forms, il te faudra une page de login qui attribuera des roles aux visiteurs. L'accès aux différentes pages étant ensuite géré de manière transparente grâce aux balises <location> Si tu ne trouves pas, demain, je pourrai éventuellement de passer un exemple que je n'ai pas ici.
Bonsoir,
S'il s'agit d'une seule application, mais qu'au sein de cette application
les différentes pages ou répertoires doivent avoir des autorisations
différentes, je pense que tu peux personnaliser ton web.config en ajoutant
des balises <location>.
Pour l'utilisation de l'authentification Forms, il te faudra une page de
login qui attribuera des roles aux visiteurs.
L'accès aux différentes pages étant ensuite géré de manière transparente
grâce aux balises <location>
Si tu ne trouves pas, demain, je pourrai éventuellement de passer un exemple
que je n'ai pas ici.
Bonsoir, S'il s'agit d'une seule application, mais qu'au sein de cette application les différentes pages ou répertoires doivent avoir des autorisations différentes, je pense que tu peux personnaliser ton web.config en ajoutant des balises <location>. Pour l'utilisation de l'authentification Forms, il te faudra une page de login qui attribuera des roles aux visiteurs. L'accès aux différentes pages étant ensuite géré de manière transparente grâce aux balises <location> Si tu ne trouves pas, demain, je pourrai éventuellement de passer un exemple que je n'ai pas ici.
VANNESTE Xavier
tu as un article a cette url http://www.bedotnet.com/default.aspx?PageContentID=5&tabidH qui expliquera comment faire avec des exemples "thibaut" a écrit dans le message de news: 120b01c52f8c$a894ad10$ Bonjour,
j'ai une petite question d'architecture : je voudrais créer un projet aspnet avec plusieurs pages d'entrée possibles : admin.aspx, default.aspx.
Je voudrais également utiliser l'autentification <authentication mode="Forms"> pour gérer facilement les sessions.
Quelles solutions sont possibles ?
Merci de votre aide.
tu as un article a cette url
http://www.bedotnet.com/default.aspx?PageContentID=5&tabidH
qui expliquera comment faire avec des exemples
"thibaut" <anonymous@discussions.microsoft.com> a écrit dans le message de
news: 120b01c52f8c$a894ad10$a501280a@phx.gbl...
Bonjour,
j'ai une petite question d'architecture :
je voudrais créer un projet aspnet avec plusieurs pages
d'entrée possibles : admin.aspx, default.aspx.
Je voudrais également utiliser l'autentification
<authentication mode="Forms"> pour gérer facilement les
sessions.
tu as un article a cette url http://www.bedotnet.com/default.aspx?PageContentID=5&tabidH qui expliquera comment faire avec des exemples "thibaut" a écrit dans le message de news: 120b01c52f8c$a894ad10$ Bonjour,
j'ai une petite question d'architecture : je voudrais créer un projet aspnet avec plusieurs pages d'entrée possibles : admin.aspx, default.aspx.
Je voudrais également utiliser l'autentification <authentication mode="Forms"> pour gérer facilement les sessions.
Quelles solutions sont possibles ?
Merci de votre aide.
thibaut
Merci pour vos réponses,
j'ai un peu de mal :-(
j'ai créé un projet avec un web.config contenant <authentication mode="None" /> et une webform puis 2 sous-répertoires user et manager contenant des web.config <authentication mode="Forms"> <forms name=".login.users" loginUrl="default.aspx" protection="All" timeout="180" slidingExpiration="true" path="/"></forms> </authentication> et <authentication mode="Forms"> <forms name=".login.manager" loginUrl="default.aspx" protection="All" timeout="180" slidingExpiration="true" path="/"></forms> </authentication>
le projet compile, l'acces au 1er niveau est bon mais j'obtiens une erreur d'execution en accèdant aux sous- répertoires. si le sous-répertoire n'est pas virtuel : Il est erroné d'utiliser une section inscrite en tant que allowDefinition='MachineToApplication' au-delà du niveau de l'application. Cette erreur peut être causée par un répertoire virtuel qui n'est pas configuré comme une application dans IIS.
si le sous-répertoire est virtuel : Impossible de charger le type 'login.users._default'. <%@ Page language="c#" Codebehind="default.aspx.cs" AutoEventWireup="false" Inherits="login.users._default" %>
Fred, comme tu me l'as proposé, pourrais-tu m'envoyer un petit exemple stp.
(pour l'envoi, supprimer le NOSPAM...)
merci d'avance, thibaut
-----Message d'origine----- Bonjour,
j'ai une petite question d'architecture : je voudrais créer un projet aspnet avec plusieurs pages d'entrée possibles : admin.aspx, default.aspx.
Je voudrais également utiliser l'autentification <authentication mode="Forms"> pour gérer facilement les sessions.
Quelles solutions sont possibles ?
Merci de votre aide. .
Merci pour vos réponses,
j'ai un peu de mal :-(
j'ai créé un projet avec un web.config contenant
<authentication mode="None" /> et une webform
puis 2 sous-répertoires user et manager contenant des
web.config
<authentication mode="Forms">
<forms name=".login.users"
loginUrl="default.aspx" protection="All" timeout="180"
slidingExpiration="true" path="/"></forms>
</authentication>
et
<authentication mode="Forms">
<forms name=".login.manager"
loginUrl="default.aspx" protection="All" timeout="180"
slidingExpiration="true" path="/"></forms>
</authentication>
le projet compile, l'acces au 1er niveau est bon mais
j'obtiens une erreur d'execution en accèdant aux sous-
répertoires.
si le sous-répertoire n'est pas virtuel :
Il est erroné d'utiliser une section inscrite en tant que
allowDefinition='MachineToApplication' au-delà du niveau
de l'application. Cette erreur peut être causée par un
répertoire virtuel qui n'est pas configuré comme une
application dans IIS.
si le sous-répertoire est virtuel :
Impossible de charger le type 'login.users._default'.
<%@ Page language="c#" Codebehind="default.aspx.cs"
AutoEventWireup="false" Inherits="login.users._default" %>
Fred, comme tu me l'as proposé, pourrais-tu m'envoyer un
petit exemple stp.
tpafrNOSPAM@yahoo.fr (pour l'envoi, supprimer le
NOSPAM...)
merci d'avance,
thibaut
-----Message d'origine-----
Bonjour,
j'ai une petite question d'architecture :
je voudrais créer un projet aspnet avec plusieurs pages
d'entrée possibles : admin.aspx, default.aspx.
Je voudrais également utiliser l'autentification
<authentication mode="Forms"> pour gérer facilement les
sessions.
j'ai créé un projet avec un web.config contenant <authentication mode="None" /> et une webform puis 2 sous-répertoires user et manager contenant des web.config <authentication mode="Forms"> <forms name=".login.users" loginUrl="default.aspx" protection="All" timeout="180" slidingExpiration="true" path="/"></forms> </authentication> et <authentication mode="Forms"> <forms name=".login.manager" loginUrl="default.aspx" protection="All" timeout="180" slidingExpiration="true" path="/"></forms> </authentication>
le projet compile, l'acces au 1er niveau est bon mais j'obtiens une erreur d'execution en accèdant aux sous- répertoires. si le sous-répertoire n'est pas virtuel : Il est erroné d'utiliser une section inscrite en tant que allowDefinition='MachineToApplication' au-delà du niveau de l'application. Cette erreur peut être causée par un répertoire virtuel qui n'est pas configuré comme une application dans IIS.
si le sous-répertoire est virtuel : Impossible de charger le type 'login.users._default'. <%@ Page language="c#" Codebehind="default.aspx.cs" AutoEventWireup="false" Inherits="login.users._default" %>
Fred, comme tu me l'as proposé, pourrais-tu m'envoyer un petit exemple stp.
(pour l'envoi, supprimer le NOSPAM...)
merci d'avance, thibaut
-----Message d'origine----- Bonjour,
j'ai une petite question d'architecture : je voudrais créer un projet aspnet avec plusieurs pages d'entrée possibles : admin.aspx, default.aspx.
Je voudrais également utiliser l'autentification <authentication mode="Forms"> pour gérer facilement les sessions.
Quelles solutions sont possibles ?
Merci de votre aide. .
Fred
Dans son message 18b001c53127$bb133190$ thibaut nous dit :
Fred, comme tu me l'as proposé, pourrais-tu m'envoyer un petit exemple stp.
Oups, je reviens du boulot pour un long week-end ! J'essaie de mémoire (il y aura peut-être des erreurs de syntaxe !)
Je reprends ton organisation : un répertoire d'application (donc logiquement un seul web.config), deux sous-répertoires pour lesquels tu veux gérer tes accès. Pour ma part je n'utiliserai qu'une page de login, dans laquelle tu vas attribuer le role user ou manager en fonction du compte.
Tu gardes un web.config de base : <authentication mode="Forms"> <forms name=".ASPAUTH" loginUrl="default.aspx" protection="All" timeout="180" slidingExpiration="true" path="/"></forms> </authentication> <authorization> <allow users="?"/> </authorization>
Tout cela se trouvant dans l'élément <system.web>
Maintenant, en dessous de </system.web> tu ajoutes <location path="users"> <system.web> <authorization> <allow roles="users" /> </authorization> </system.web> </location>
Il faut peut-être ajouter des deny (?). Dans path, tu spécifies un chemin ou bien le nom d'une page. Restent : - la partie création du cookie dans la page de login (default) qui va te permettre de spécifier les différents roles. - l'extraction des rôles de ce cookie dans l'événement Authenticate_Request du global.asax pour créer un GenericPrincipal (c'est grâce à lui que les règles du web.config pourront être appliquée) Pour ce faire je te conseille de rechercher et télécharger chez microsoft, le document SecNet.pdf dans le cas tu trouveras des exemples de code pour cela (cela se trouve aussi en ligne dans la MSDN rubrique sécurité des applications ASP .NET)
Mais je crois que tout ceci (le paragraphe précédent) se fait automatiquement si tu crées tes comptes utilisateurs et leur rôle dans le web.config (à vérifier). J'avais dû développer tout cela car mon authentification s'adossait à une base de données, avec plusieurs applications (dont une dédiée au login) et j'avais besoin de la notion de groupe en plus des rôles.
Bon courage.
-- Fred
Dans son message 18b001c53127$bb133190$a601280a@phx.gbl
thibaut nous dit :
Fred, comme tu me l'as proposé, pourrais-tu m'envoyer un
petit exemple stp.
Oups, je reviens du boulot pour un long week-end !
J'essaie de mémoire (il y aura peut-être des erreurs de syntaxe !)
Je reprends ton organisation : un répertoire d'application (donc logiquement
un seul web.config), deux sous-répertoires pour lesquels tu veux gérer tes
accès. Pour ma part je n'utiliserai qu'une page de login, dans laquelle tu
vas attribuer le role user ou manager en fonction du compte.
Tu gardes un web.config de base :
<authentication mode="Forms">
<forms name=".ASPAUTH" loginUrl="default.aspx" protection="All"
timeout="180" slidingExpiration="true" path="/"></forms>
</authentication>
<authorization>
<allow users="?"/>
</authorization>
Tout cela se trouvant dans l'élément <system.web>
Maintenant, en dessous de </system.web> tu ajoutes
<location path="users">
<system.web>
<authorization>
<allow roles="users" />
</authorization>
</system.web>
</location>
Il faut peut-être ajouter des deny (?). Dans path, tu spécifies un chemin ou
bien le nom d'une page.
Restent :
- la partie création du cookie dans la page de login (default) qui va te
permettre de spécifier les différents roles.
- l'extraction des rôles de ce cookie dans l'événement Authenticate_Request
du global.asax pour créer un GenericPrincipal (c'est grâce à lui que les
règles du web.config pourront être appliquée)
Pour ce faire je te conseille de rechercher et télécharger chez microsoft,
le document SecNet.pdf dans le cas tu trouveras des exemples de code pour
cela (cela se trouve aussi en ligne dans la MSDN rubrique sécurité des
applications ASP .NET)
Mais je crois que tout ceci (le paragraphe précédent) se fait
automatiquement si tu crées tes comptes utilisateurs et leur rôle dans le
web.config (à vérifier).
J'avais dû développer tout cela car mon authentification s'adossait à une
base de données, avec plusieurs applications (dont une dédiée au login) et
j'avais besoin de la notion de groupe en plus des rôles.
Dans son message 18b001c53127$bb133190$ thibaut nous dit :
Fred, comme tu me l'as proposé, pourrais-tu m'envoyer un petit exemple stp.
Oups, je reviens du boulot pour un long week-end ! J'essaie de mémoire (il y aura peut-être des erreurs de syntaxe !)
Je reprends ton organisation : un répertoire d'application (donc logiquement un seul web.config), deux sous-répertoires pour lesquels tu veux gérer tes accès. Pour ma part je n'utiliserai qu'une page de login, dans laquelle tu vas attribuer le role user ou manager en fonction du compte.
Tu gardes un web.config de base : <authentication mode="Forms"> <forms name=".ASPAUTH" loginUrl="default.aspx" protection="All" timeout="180" slidingExpiration="true" path="/"></forms> </authentication> <authorization> <allow users="?"/> </authorization>
Tout cela se trouvant dans l'élément <system.web>
Maintenant, en dessous de </system.web> tu ajoutes <location path="users"> <system.web> <authorization> <allow roles="users" /> </authorization> </system.web> </location>
Il faut peut-être ajouter des deny (?). Dans path, tu spécifies un chemin ou bien le nom d'une page. Restent : - la partie création du cookie dans la page de login (default) qui va te permettre de spécifier les différents roles. - l'extraction des rôles de ce cookie dans l'événement Authenticate_Request du global.asax pour créer un GenericPrincipal (c'est grâce à lui que les règles du web.config pourront être appliquée) Pour ce faire je te conseille de rechercher et télécharger chez microsoft, le document SecNet.pdf dans le cas tu trouveras des exemples de code pour cela (cela se trouve aussi en ligne dans la MSDN rubrique sécurité des applications ASP .NET)
Mais je crois que tout ceci (le paragraphe précédent) se fait automatiquement si tu crées tes comptes utilisateurs et leur rôle dans le web.config (à vérifier). J'avais dû développer tout cela car mon authentification s'adossait à une base de données, avec plusieurs applications (dont une dédiée au login) et j'avais besoin de la notion de groupe en plus des rôles.
Bon courage.
-- Fred
thibaut
merci de ton aide. j'ai égalemenent une base de données pour gérer l'identification. je vais essayer de me débrouiller avec tes précieuses infos.
passe un bon we de paques !
-----Message d'origine-----
Dans son message 18b001c53127$bb133190$ thibaut nous dit :
Fred, comme tu me l'as proposé, pourrais-tu m'envoyer
un
petit exemple stp.
Oups, je reviens du boulot pour un long week-end ! J'essaie de mémoire (il y aura peut-être des erreurs de
syntaxe !)
Je reprends ton organisation : un répertoire
d'application (donc logiquement
un seul web.config), deux sous-répertoires pour lesquels
tu veux gérer tes
accès. Pour ma part je n'utiliserai qu'une page de
login, dans laquelle tu
vas attribuer le role user ou manager en fonction du
compte.
Tu gardes un web.config de base : <authentication mode="Forms"> <forms name=".ASPAUTH" loginUrl="default.aspx"
Il faut peut-être ajouter des deny (?). Dans path, tu
spécifies un chemin ou
bien le nom d'une page. Restent : - la partie création du cookie dans la page de login
(default) qui va te
permettre de spécifier les différents roles. - l'extraction des rôles de ce cookie dans l'événement
Authenticate_Request
du global.asax pour créer un GenericPrincipal (c'est
grâce à lui que les
règles du web.config pourront être appliquée) Pour ce faire je te conseille de rechercher et
télécharger chez microsoft,
le document SecNet.pdf dans le cas tu trouveras des
exemples de code pour
cela (cela se trouve aussi en ligne dans la MSDN
rubrique sécurité des
applications ASP .NET)
Mais je crois que tout ceci (le paragraphe précédent) se
fait
automatiquement si tu crées tes comptes utilisateurs et
leur rôle dans le
web.config (à vérifier). J'avais dû développer tout cela car mon
authentification s'adossait à une
base de données, avec plusieurs applications (dont une
dédiée au login) et
j'avais besoin de la notion de groupe en plus des rôles.
Bon courage.
-- Fred
.
Fred
Dans son message 199a01c53148$2efac580$ thibaut nous dit :
merci de ton aide. j'ai égalemenent une base de données pour gérer l'identification.
Dans ce cas le document SecNet devrait t'apporter une aide précieuse. J'avais oublié de mentionner un point important justifiant la programmation du global.asax, c'est que j'utilise des cookies cryptés, et les regénère à chaque demande. Ce sont ces procédés qui sont exposés dans le SecNet. Si tu considères que c'est superflu tu peux élaguer.
je vais essayer de me débrouiller avec tes précieuses infos.
passe un bon we de paques !
Merci, à toi de même !
-- Fred
Dans son message 199a01c53148$2efac580$a601280a@phx.gbl
thibaut nous dit :
merci de ton aide.
j'ai égalemenent une base de données pour gérer
l'identification.
Dans ce cas le document SecNet devrait t'apporter une aide précieuse.
J'avais oublié de mentionner un point important justifiant la programmation
du global.asax, c'est que j'utilise des cookies cryptés, et les regénère à
chaque demande.
Ce sont ces procédés qui sont exposés dans le SecNet. Si tu considères que
c'est superflu tu peux élaguer.
je vais essayer de me débrouiller avec tes précieuses
infos.
Dans son message 199a01c53148$2efac580$ thibaut nous dit :
merci de ton aide. j'ai égalemenent une base de données pour gérer l'identification.
Dans ce cas le document SecNet devrait t'apporter une aide précieuse. J'avais oublié de mentionner un point important justifiant la programmation du global.asax, c'est que j'utilise des cookies cryptés, et les regénère à chaque demande. Ce sont ces procédés qui sont exposés dans le SecNet. Si tu considères que c'est superflu tu peux élaguer.
je vais essayer de me débrouiller avec tes précieuses infos.