1

I Utilisez l'authentification Windows avec profil et vous souhaitez passer à une authentification personnalisée.
Ma question est Comment puis-je spécifier que mon utilisateur est authentifié et comment définir le Profile.UserName.
Je connais le Profile.UserName est ReadOnly.

Dans mon Web.Config, je modifie le authentication mode="None" et configure IIS pour activer Anonymous.
Dans le global.asax je vérifie s'il existe un cookie pour l'utilisateur, sinon, l'utilisateur est redirigé vers une page de connexion. Quand il soumet, je crée le cookie et à ce moment, je voudrais définir les informations de profil.Authentification Windows pour l'authentification personnalisée fonctionnant avec le profil

Si quelqu'un peut juste me donner un lien à ce sujet, j'apprécierais vraiment.

+0

Il se peut que ce ne soit pas ce que vous recherchez, mais existe-t-il une raison pour laquelle vous n'utilisez pas l'authentification par formulaire? Il fait tout ce que vous avez décrit jusqu'ici et fait gagner du temps par rapport à la personnalisation. –

+0

Je vais essayer l'authentification par formulaire et vous le faire savoir. –

Répondre

1

Il semble que l'authentification par formulaires puisse gérer ce dont vous avez besoin. Ajoutez la ligne suivante à votre web.config racine

<authentication mode="Forms"> 
    <forms name="XXXXX.ASPXAUTH" timeout="60" loginUrl="~/login.aspx" protection="All" path="/"></forms> 
</authentication> 

Remplacer les années XXX avec tout ce que vous voulez appeler votre cookie. Renommez également login.aspx à ce que vous avez appelé votre page de connexion. Ce code redirigera toute personne non authentifiée vers la page de connexion.

Ensuite, dans votre logique de connexion utiliser quelque chose comme code C#

FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, txtUsername.Text, 
    DateTime.Now, DateTime.Now.AddMinutes(60), true, reader["user_level"] + "", 
    FormsAuthentication.FormsCookiePath); 
string hash = FormsAuthentication.Encrypt(ticket); 
HttpCookie cookie = new HttpCookie(FormsAuthentication.FormsCookieName, hash); 
if (ticket.IsPersistent) cookie.Expires = ticket.Expiration; 
Response.Cookies.Add(cookie); 

Avec ce code, vous voulez envoyer au niveau de l'utilisateur de l'enregistrement de personne (c.-à-administrateur, utilisateur, etc.) où j'ai "lecteur [..."

La dernière chose que vous devez faire est de configurer chaque répertoire protégé avec son propre web.config qui décrit les rôles d'utilisateur qui sont autorisés et les rôles qui sont refusés. Les noms que vous utilisez pour les rôles dans le fichier web.config doivent être cohérents avec les valeurs envoyées au FormsAuthenticationTicket et vous serez prêt à partir.

+0

Merci Justin, c'est un travail génial. Je peux faire tout ce dont j'ai besoin avec cette méthode. –

Questions connexes