SignInManager,ce que c'est et comment,quand les utiliser?
Je me penche sur SignInManager classe. Mais l'information donnée sur MSDN est très inutile. Il dit seulement ce que sont les méthodes et les propriétés fournies.
Ce que je suis à la recherche est,
1) qu'est-Ce que SignInManager?
2) Comment l'utiliser?
3) Et j'ai ma propre base de données qui contient les informations d'identification infos(nom d'utilisateur et mots de passe)
Comment puis-je utiliser SignInmanager et comment l'utiliser donc ma base de données personnalisée est utilisée pour authentifier les utilisateurs?
Je suis en utilisant asp.net MVC 5 et Visual Studio 2015. Dans mon exemple de projet que j'ai des comptes contrôleur qui contient les méthodes d'action comme
public async Task<ActionResult> ExternalLoginCallback(string returnUrl)
Mais je n'ai aucune idée de comment l'utiliser, MSDN est totalement inutile de fournir des informations sur cette. Tout liens utiles qui l'explique dans les détails parce que je n'ai aucune idée de ce que SignInManager est et à quoi il sert.
Grâce
Vous devez vous connecter pour publier un commentaire.
Disclaimer: je suis confus par le modèle utilisé dans ASP.NET l'identité de moi-même et ce que je dis, c'est ma compréhension des choses, qui peuvent être inexactes (je pourrais aussi énoncer des choses évidentes, donc je m'excuse). Aussi, je jouais avec Asp.Net de Base de l'identité récemment, ce qui est légèrement différent par rapport à ce qui était disponible pour Asp.Net 4, afin que je puisse mélanger les choses.
Cookies
ASP.NET l'identité fonctionne avec deux types de cookies: un cookie d'Application et Externes cookie. Application cookie contient votre application identité et qui est délivré par signe dans le gestionnaire. Externe cookie contient externe fournisseur d'authentification de l'identité et qui est délivré par l'authentification middleware (comme
FacebookAuthenticationMiddleware
, par exemple). Vous utilisez signe dans le gestionnaire de consommer de l'externe cookie et la question de l'application cookie. Si vous n'utilisez pas l'authentification externe vous n'avez pas à traiter avec les cookies externes.Signe dans le gestionnaire de
Classe déclarée comme ceci:
De sorte que vous pouvez utiliser n'importe quelle classe en votre qualité d'utilisateur, tant qu'il met en œuvre
IUser<TKey>
interface. Ou utiliserIdentityUser
que votre base si vous commencez à partir de zéro, qui met en œuvreIUser<string>
. Dans le passé, j'ai tenté de créer une application qui utiliseint
commeTKey
, mais a abandonné la tentative après avoir passé pas mal de temps à essayer de le faire fonctionner et ne voyant aucun progrès.Mot de passe dans
SignInManager.SignInAsync
méthode des questions cookie d'application pour l'utilisateur spécifié tout de suite, sans aucun contrôle, donc si vous implémentez un personnalisé logique d'authentification, vous pouvez l'utiliser (par défaut asp.net MVC modèle utilise après l'inscription de l'utilisateur de sorte qu'ils n'ont pas à s'authentifier de suite après l'inscription).SignInManager.PasswordSignInAsync
donné le nom d'utilisateur et mot de passe, vérifie leur validité et les problèmes d'application de cookie si elles sont correctes.Signe externe dans
Au lieu d'avoir à l'utilisateur de créer login et mot de passe pour votre site que l'on voudrait utiliser certains site web externe d'authentifier et de transmettre les informations d'authentification pour vous avec OAuth.
Asp.Net l'Identité est une notion de
User
etLogin
, oùUser
est... eh bien, l'utilisateur (une personne), etLogin
est le diplôme quiUser
authentifie.User
peut avoir plusieursLogin
s.OAuth flux de vu de l'Asp.Net site web ressemble à ceci (basé sur le journal par défaut dans le flux généré par VS modèle):
FacebookAuthenticationMiddleware
avec ID d'application et le secret de l'app Facebook vous offre).ChallengeResult
contenant le nom du fournisseur à utiliser (ce qui arrive souvent dans laAccountController.ExternalLogin
), URL de retour est définie pour appelerAccountController.ExternalLoginCallback
et le rendement réel de l'URL, l'utilisateur doit s'arrêter en est enregistré pour plus tard.ChallengeResult
objet et le convertit en réponse de redirection HTTP, qui provoque de l'utilisateur du navigateur pour accéder à des sites web de tiers qui demande à l'utilisateur des informations d'identification./signin-facebook
IIRC).AccountController.ExternalLoginCallback
).AccountController.ExternalLoginCallback
on s'attend à consommer les externes cookie et d'émettre une demande de cookie. C'est ce queSignInManager.ExternalSignInAsync
t: étant donné que les informations de connexion, il essaie de trouver de l'utilisateur avec quiLogin
. S'il en trouve, il les problèmes d'Application de témoin; s'il ne le fait pas, il vous informe et vous devez faire ce que vous pensez est juste lorsque vous recevez inconnuLogin
(en règle générale, vous créez un nouvel utilisateur à ce point. Défaut de mise en œuvre de VS modèle de demande pour plus d'info à ce stade, et crée l'utilisateur dansAccountController.ExternalLoginConfirmation
). Après que l'utilisateur est redirigé vers rendement réel de l'URL "sauvegardés pour plus tard" à l'étape 4.De stockage personnalisé
J'ai été infructueuses jusqu'à présent avec la création de stockage personnalisé pour Asp.Net l'Identité. Il implique généralement la mise en œuvre de votre propre gestionnaire de l'utilisateur de la classe descendant de la
UserManager<TUser, TKey>
et de la classe de stockage de la mise en œuvre des tas d'interfaces, commeIUserStore<TUser, TKey>
,IUserRoleStore<TUser, TKey>
, etc.SignInManager
est une classe d'assistance qui traite Externe/de l'Application des cookies, mot de passe de validation et 2FA. Vous ne savez pas comment l'un de ceux qui est utile pour les API Web.