Question

Je développe un site Web ASP.NET. Je prévois d'utiliser l'authentification des formulaires afin de garantir l'authentification / l'autorisation, mais je suis confronté à deux problèmes concernant l'autorisation:

  1. Je sais comment définir dans la configuration Web que les utilisateurs authentifiés sont autorisés à visiter une page Web (disent mypage.aspx). Mais je ne sais pas comment définir cet utilisateur est capable d'accéder à MyPage pour récupérer ses informations, pas les informations de Userb. Je pensais à générer un jeton lorsque l'utilisateur authentifie, je suis donc capable de vérifier à qui ce jeton appartient et vérifie si ces informations sont disponibles pour lui. Que pensez-vous de cette approche? La forme authentification génère-t-elle un jeton comme ça? (Je n'ai trouvé aucune mention à ce sujet dans mes recherches). Sinon, pourrais-je adapter les mécanismes de l'authentification de formulaire afin de générer ou que je devrais-je faire tout ce que vous êtes?

  2. J'aimerais accéder à des webservices, ce qui ne doit que renvoyer des informations si l'utilisateur est enregistré. Pour cette raison, j'aimerais utiliser le même jeton expliqué ci-dessus. Qu'est-ce que tu en penses? Est-ce une bonne approche?

    Je le demande, car je n'ai aucune expérience sur la conception des mécanismes d'authentification / autorisation, toute aide / conseil serait appréciée.

Était-ce utile?

La solution

En ce qui concerne la question une, après l'authentification des formulaires dans une application Web ASP.NET Web Forms, l'identité de l'utilisateur est exposée sous la forme d'un Formssentalement objet dans la page.Utiliser.Identifité Propriété. Cet objet comporte une propriété de nom contenant le nom d'utilisateur qu'un utilisateur utilise pour vous connecter à votre site. Vous pouvez utiliser cette valeur pour restreindre ce qu'un utilisateur peut accéder. Par exemple, disons que vous avez une table dans votre base de données avec des informations utilisateur contenant les champs suivants:

userId int
userName varchar(25)
...more fields containing user information...

Vous pouvez limiter un utilisateur à n'accéder que les informations de la ligne de cette table dans laquelle le nom d'utilisateur est égal à la page.User.Identity.name, directement si vous utilisez directement ADO.NET ou via votre requête à votre ormes. objet de domaine (c.-à-d. Nibernate ou EF).

En ce qui concerne la question deux, l'objet de la crésicidité exposé par page.Utilisateur a une propriété booléenne "isauthenticiated". Vous pouvez l'utiliser pour limiter l'accès à votre service Web comme suit:

if(Page.User.Identity.IsAuthenticated)
{
     //Call your web service in a secure manner
}

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top