向空项目添加 ASP.NET Identity

安装 AspNet.Identity 程序包

Microsoft.AspNet.Identity.Core 包含 ASP.NET Identity 核心接口
Microsoft.AspNet.Identity.EntityFramework ASP.NET Identity 的实体框架提供程序

添加用户注册代码

var userStore = new UserStore<IdentityUser>();
var manager = new UserManager<IdentityUser>(userStore); var user = new IdentityUser() { UserName = ... };
IdentityResult result = manager.Create(user, ...); if (result.Succeeded)
{
}
else
{
}
  • UserStore 实现以下在 ASP.NET Identity Core 中定义的接口:
    • IUserStore,公布用户管理的基本 api
    • IUserLoginStore,此接口将用户映射到 login 提供程序,例如 Google, Facebook, Twitter
    • IUserClaimStore 保存声明。
    • IUserRoleStore  此接口将用户映射到角色
  • IdentityUser 实现在 ASP.NET Identity Core 中定义的 IUser 接口,IUser 接口表示用户。
  • UserManager 公布向 UserStore 保存更改的 API。
  • IdentityResult 在 ASP.NET Identity Core 中定义,表示操作结果。

类间关系如图:

aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAsgAAAF1CAIAAAB6dYsXAAAgAElEQVR4nO3d7bGiShMAYOLZEAxhA7E2jFu1CRjBG4ZVG4vB+P7Qo3wMiDBAMzxPUbfOVeSju2do0XO2ugMAZFJtfQAAQDk0FgBANhoLACAbjQUAkI3GAgDIRmMBAGSjsQAAstFYAADZaCwAgGw0FgBANhoLACAbjQUAkI3GAgDIRmMBAGSjsQAAstFYAADZaCwAgGw0FgBANhoLACCbbRqL/6pqL4sIHHmRfdEudRHthSLAfcPG4n7/F39Zrv72EoEjL7Iv2qUuoq23WJTG4kPx/fz3oBE48iL7ol3qItrLRYC7xmJM8S1Rf3uJwJEX2RftUhfRXi4C3DUWI4sve/3tJQJHXmRftEtdRHu5CHCP2VhUK5bm8L5ax5mx/gYiMHxIrWfnx2pgCx/3VdXUV6ivWfXo29fAaq299B38a7WB3Y05fdmffGB9qRxIimiPiefMvYj2ChHgvrvG4uMlKrlCrktLxvpbbvjlikByy8NbqP/32zH/eqT+VPJk+1ZonebH1T6GSPaHd/0xkt0UDCRXtMes9nEvIw/myNFeOgLc4zQWE4rmYyX1/Tx+d8lBkqX+/ht9PPWjqjo3Bl7PttaZGYG+vY/fY+vB4TgnT6q12scTHLla9yXjpx7ZT+auL6rdAxg4JNEejnY3wmMe6XvwsNFeIQLc4zQWH0fCyGV88Y3Zdd9xzq+/vi0Pn3vfVDLmrL+KQPeFyU2NWXlMmvrGf3LLw/NFd25KbvPjdmR/TPb7jEyfaI+Mdt/BfNxL364PG+0VIsA9VGMxPNcPzGKtuWx4hSzFN7/++iKQPIvug8kzzRiBqhP5vte2Dib52jGHNObcP84vyTMdTvHAg//J/qfsDy/dA+jLnWh/jPaYfY08niNHe4UIcA/VWHw1c42pnr6fvyq+4SVvBLpHlTzsgfPKFYHkCwd+mJCdb5Oe3OnA6fdNPa0VBnYt+x+zPzzRd7czcEii/THaX+13+MgPG+0VIsA9SGMxMEPV56lvq2e4+Mbvq2/JO/y6e+8bWvW5pnvYWSLQF5P6ASTXrG9hwvEkN9haf8xJfYzhx0KS/eHsj9lX8rXJLYv2mGgPbOSr4zlytFeIAPcgjcVAhSWfTf7wVVV93P7Kw69+1gMH310tOczmR2B4DA+M6uFZ43UYyQP+uJGPp9bd/rTtyP6Y7A+vNqFyRHtOtMcfz5GjvUIEuEdrLMaPopHDrK+qvh1pSw+/kQfZnWu6QytLBAZe2H12zCzWmjg+pn74vAaOORmckXFYbeopI/vJ1NePp/ugaC8X7W9DesxorxAB7qEai2QZfVtMEwpxj8OvOw6/OuuPERg52Y3ccvc4hyfQMStMOLbhFb6tCtnv286YLH8bcNGeuS/R/mrRWMwUorFo1dOYS8jBG4t63F7RyxiBqmn4OLsH1s1s8hiSTw1sauDxb2M4vxhk/9vQzYm8aM/cl2h/tcyJAPcgjUVrjA0/0vdgX1W1CjRX5S09/IZnmdb/Dp/dhAgMjNvk4E8ambX6U6//drcz/PLWz33HM6a6ZH9k9r8KV3c7X21BtPtemyzpvvoX7RUiwD1aY7GvJfvws+xokX3RLnURbY3FTBoLw88yZZF90S51EW2NxUwaC8PPMmWRfdEudRFtjcVMGgvDzzJlkX3RLnURbY3FTBoLw88yZZF90S51EW2NxUwaC8PPMmWRfdEudRFtjcVMGgvDzzJlkX3RLnURbY3FTBoLw88yZZF90S51EW2NxUwaC8PPMmWRfdEudRFtjcVMGgvDzzJlkX3RLnURbY3FTBoLw88yZZF90S51EW2NxUybNRZlLCJw5EX2RbvURbQnR4D7Vo0FAFCkYhsLLedWRH5f5Gs1Qj2Z0O1LsdlSiFsR+R2RrNUI9WRCtzvFJkwtbkXkd0SyViPUkwnd7kgYAJCNxgIAyEZjAQBkU2xj4WO5TQj7jkjWaoR6MqHbo2Jzphw3Iew7IlnrEOc5RG+Pis2ZctyEsO+FTK1GqCcTup2SNgAgG40FAJCNxgIAyKbYxsKHc+sT872QqdUI9WRCt1/FZk5Rrk/M90KmViPUkwndfhWbOUW5PjHfC5lahzjPIXr7JXMAQDYaCwAgG40FAJBNsY2Fz+dWJuB7IVPrEOc5RG/Xik2eulyZgO+CNK1GqCcTur0rNn9Kc2UCvgvStA5xnkP09k7+AIBsNBYAQDYaCwAgm2IbC5/SrUm0d0Ga1iHOc4heAYpNoepck2jvgjStQ5znEL0CFJtC1bkm0Y5PjtYhznOIXhlkEQDIRmMBAGSjsQAAsim2sfBZ3WqEOj45Woc4zyF6xSg2kWp0NUIdnxytQ5znEL1iFJtINboaoY5PjtYhznOIXjEkEgDIRmMBAGSjsQAAsim2sfBx3TrEOT45WoEgzySAJSk2l8p0HeIcnAStQ5znEL3CFJtOlboOcQ5OgtYhznOIXmGkEwDIRmMBAGSjsQAAsim2sfCh3QoEOTgJWoEgzySA5Sk2o4p1BYIcnAStQJBnEsDyFJtRxboCQY5MdtYhznOIXpEkFQDIRmMBAGSjsQAAsim2sfDR3dJEODLZWYc4zyF6pSo2r0p2aSIcmeysQJBnEsBSFZtXJbs0EY5MdlYgyDMJYKnkFQDIRmMBAGSjsQAAsim2sfDp3aKENzLZWYEgzySABSs2tap2UcIbltSsQJBnEsCyLZjd/6rqsIvQ7Sja0hEkI5sfdvBFVNeJGPMt21jc7/8OuMwv6MOGbpNoS0eQjIizqEaIGPNpLCIW9GFDt0m0pSNIRsRZVCNEjPk0FhEL+rCh2yTa0hEkI+IsqhEixnwai4gFfdjQbRJt6QiSEXEW1QgRYz6NRcSCPmzoNom2dATJiDiLaoSIMV/pjcX1d1VVVVWdr3sq6BChixTSRaO973QUlJGgcY4R3n1HdZ/zMJNFbSxuf06nP7dvn2ovf8/Vr8tt7VEUtLHYc0gXjfY26ZCRpeNcVni3ieqeY6ix2NCGjcXfc7ou+x7/vqBvf07V7+v00vzf5ZR8ed/j2Qp66lxQbEgHltiNhYwsGucDhXexqBYbQ43FhjZpLP53OVVVotRqjz+q9vbndPpzOVe122iPdaqqqk6X/91vf37+79fl9nzV5fzYyN+f11XV6c/18quqr/kYOVVty61N3WvrJMZP3+N5Cvr7GbbwkA4sURsLGVk0zocL7wJRLTyGkyPGfGs3Ftdzq2J6Hn8V9OtjuevvZwG9O+W/59eo6K5/7+mpr7+r89/HwKh94NfZVP0lj1o//22fTs/j8wv6mxn2ECFdYsJdKB0ysnRjcczw5o3qEWKosdjQmo3F33P6yzupx2ud8q1VZ/Ufqrrf11Yttl5ea5xv3TVbm+qO7evvkY+v2FgcJaRLTLgLpENGZmVkRJyPG958UT1KDFeYGegT/o7FcEF3W9pkQd/+nF4b7245uanWZquC7ljsMKRLTLgLpUNGlmwsjhvevFE9Qgw1FhvawXcsEgX9fG2nxR4o6J/Hb5df1enPLXELrreLL+87FrsL6RIT7pLpkJGl43y48C4Q1cJjqLHYUNTfChko6Gdb3frSUM+NteZLqqo6nX937+A1vzT0qtSyfitkzyFdYsJdPh0ysnScDxTexaJabAxXmBnoE/XvWOx52a6xOOISu7E44rJiY3GgRVRXixjzaSwiFvRhQ7dJtKUjSEbEWVQjRIz5NBYRC/qwodsk2tIRJCPiLKoRIsZ8GouIBX3Y0G0SbekIkhFxFtUIEWM+jUXEgj5s6DaJ9g7S8fg3nL75nc89ZmT7OAeOf4FRjRox5ttTY/H6RvHzC8PN0f54NsI/8Ji9sVj2xGdMmrfLr+fXwoc3/jr2y/9+/oLvnH87IHO0Y6Xj/q/+R46fWx7M0ecs7CQjq8a5/tsHVZX8ow7toA2Mkf1EtbssXs/LBydvxJhvT41Fe4QfprFY9sSXezeW3nKUCTdoOp7xaV7ncuUodkZWjfOjsWj8xmN/BIbjv7uoDp/CGtOLxqJwZTYW9R78+U6u3jXXZ5Nnh56zxDdsLKaceGrk397/VtD7rXDjnc1jj6/XPn44/TrVdpR8J93cyO9rcl/d1HTPYsXpY810XJK3H167aL7Pbmzz9ewrC6/k7iQja8b5Wm8smte5xOl3D2PXUV1xXk3Wc/bgLDQPM1mBjUVinN/+nJoj4f1HXZ6zcAmNxcQT7zYWtUfe08rwg8/G4s+t+2xrvmi9WUlutnWEybNYcfpYMx3n5BvERPP3+POIvy63bttRm6mT+YqakVXLvnvHorOXRJ0nt7y7qK45r64SnIXmYSYrtrGo13H9kafmLJz3IOcX9JwZ9usT71y0Gjc/f57tvnFJNBatqeE9g9T23pxTkvtqHWH6LFacPtZMR/rOc20XzY2kGovO2+i9ZGTNOLe/Y5G8898p7/4T31VU155XFw/OQvMwkxXYWLyf+qm/9LfbGvdCcy7zCzoRuuVOfNnGorvT0XNK/Z8V6H+DssL0sWY60us0L2y1dmFCYxE3I6uW/et/fzqMdm3fexuLoffKu4hqd1lnXl0sOFvNDPTZc2PRqM7Ut4Fedzif4yH17B4bi7wnPu6jkPSFanxj8V5h/F3Q5hH23FtaYfpYNR2DX958/+sMAx+FjGws4mVk1TjX//e5fjOYA3U+6muegaM6dNhLzquLBSe5rDAz0GdPjUX716LedV+954XWTbPWPPJ6+P1Z4A4ai2VPvPkhaP2y9H7J/d/PleztY2PR+rLn691GbeOfvrfVmq06m1pn+lg1He2ttcL7eurX6fvGInhGVo1z839/9vXrcvv05c3OlvcV1ZXn1XWCs9A8zGR7aiz2sswv6Nih6/vXlvca7Z2nI9yy3CXwyIuorhYx5tNYRCzokKFLvImJsGgsoi0ugaIaYdFYbEhjEbGgDxu6TaItHUEyIs6iGiFizKexiFjQhw3dJtGWjiAZEWdRjRAx5tNYRCzow4Zuk2hLR5CMiLOoRogY82ksIhb0YUO3SbSlI0hGxFlUI0SM+TQWEQv6sKHbJNrSESQj4iyqESLGfMs2FoddhG5H0ZaOIBnZ/LCDL6K6TsSYzx2LiJ3yYUO3SbSlI0hGxFlUI0SM+TQWEQv6sKHbJNrSESQj4iyqESLGfBqLiAV92NBtEm3pCJIRcRbVCBFjPo1FxII+bOg2ibZ0BMmIOItqhIgxn8YiYkEfNnSbRFs6gmREnEU1QsSYT2MRsaAPG7pNoi0dQTIizqIaIWLMp7GIWNCHDd0m0ZaOIBkRZ1GNEDHm01hELOjDhm6TaEtHkIyIs6hGiBjz+QNZEf8wy+bHv68lS7lKx+YZ2fywgy+iuk7EmM8di4id8mFDt0m0pSNIRsRZVCNEjPk0FhEL+rCh2yTa0hEkI+IsqhEixnwai4gFfdjQbRJt6QiSEXEW1QgRYz6NRcSCPmzoNom2dATJiDiLaoSIMZ/GImJBHzZ0m0RbOoJkRJxFNULEmE9jEbGgDxu6TaItHUEyIs6iGiFizKexiFjQhw3dJtGWjiAZEWdRjRAx5tNYRCzow4Zuk2hLR5CMiLOoRogY82ksIhb0YUO3SbSlI0hGxFlUI0SM+fzlzYh/8W3z49/XkqVcpWPzjGx+2MEXUV0nYsxXbOhVVRASsRCBHU+sulx6WU6xhWXMBOHdw0KEdAzlV+cNPesos7YeY8bIieCVBenISIWPofYekp3EwWPCosqsLdNuHPUsyEguKvwjhTdwZ+KYAWE1BZaXCSWaVkYkZSZvxIe1auxQURr5ScehYsL6Ciyvw84pYXWzIC9zqPABxyy2r742cYSAsK0CK8y0G03fzVjZmcAn5X2Oedt/wjgqOyBEUFqFHfP9SnADKZCdb2ksko5cY1+dYPHRIILSikxjEdDHj3vlaKQDviP/yPcJ7t+c4xGiweaKKrK+MWMsbWtM/OVoDI1Fi9J68O0KQimqzjQWMZn1slDeLeqqTo9FHEXVmZk3rPHXAMnqc+SvEbT4DYgkHwkRRDmlZlBF5vtlMynvF7U0QPdJBOWUmpk3MncsZvoYlkPFzR2LPu7aEkEh1ebzxeAkaA7RSxKWJN/wZXOFVJspJji/cTqH8u7jd00fhv+6yUGCQByFFJyZN7iBO7TyMsyfKPhooIqOEJOPtyiOEARCKaHgzLzxDcx9kjJMeX80UEjFx+RjR1V8BAiohJoz8+5C6y2UiW8MvwExRr2WvFN/0bizld3X3LfDxjDbik5igv9q/wp2a+lbf+UjDEilvYgAm9h92Q3MvF/NyCxN/PNS3gPKjkap50UxFCgrMRuysiJLrsiTojDF1qjhtztSNp5Y3Q8ZhAOeMntUbJkagbsjZeOJlQhAWMUOTvPOHsnaSAIlAhCWwQkAZKOxAAiq4N9toWBKFiAiLQU7VWzhGpO7Jn3DDhufw5447Eixo9QEtGvSN+yw8TnsicOOFDtKTUB7J4MDjhmcY5417I6BChCF5okCKGKA7fkFEIqhjgGAbIptLPT+ZZDHrqPF5GjnC3tX7Ig1GRVDKluOFpCjnS/sXbEj1mRUEtmsO1Q0yj7Zss+Ow1LWAGvzVU0KprIBgGw0FgBANsU2Fm4zlkdOHw4Sh4OcJpSn2KFrViqStN6PEYQiz7HIk4KuYgvdGC6StN4PEIQiT7DIk4IktQ6wLF0Fh6LcAYBsNBYAQDbFNhbuPZbtyPkt+NxLOrWSzgW+UmzpG9VlO3J+Sz33ks6rpHOBbxVb/QZ28Q6b4lJPvJjzKuZEYBoDAADIRmMBAGSjsQCYy8cf8FLsYDDOj+NouS7sfAs4nQJOgfiqqnr8t2545eGnBtaZqdjxYKgfx9FyXdL5FnAuBZzCLNfz4wp3vm59JB/dLqfT5bb1UXyr1UPUu4HWzwPGrJbzmDNuK5Sjj/aDOU66CzvTwk5ne7fLqXmRv56r6nS5LXVNvZ6rn+0O7eJ2OVXV+ANorT6w5eRTjyB0u52vgvBaufvDGD/9Vq6ea0xjMWYj375kGqMaoBS3y+l0Pp/qF/vTgm/Tb5fT67L54fJfO6oxm22fxTeNRd/j0xqL719+u5zq3cT1nKGzqDcWfbcius92b3WscLvirrEA+FbcGy23y+l0uf5cAa/n6ny5nBp3LN5vpR9PXc4/76k7b/TfD7zesjdWqL0rP53PzXU7B3Wr3dxobvnZRtQ2/XrBYz/1ewY9B9Teab0JeK/V87rbKw6vc6ut8exw6q+51vqp+ml19918uLWHdPDbrx15+U8+232wcscCIJq4XcX9dVG7nqvz9VZrKZ6P1+8wtN5ZX8/V+zpena/1da/n87W7wr1z/U6/of954nUJbm35djm9rqaPndRe8e4z7q9GY8THE81G6t0oJbdTj0P9IAc+Cnlto7axWlS7tyiS4a0H/8ONn2rcHYt77fOOvlYjqbvmHIFHyDyhBz/LOELSyzjH/Z5F9COvXZIb7/5vrfsWjZUTP1fPTqJKXvBe184xjUXjGv+6k9Kz5cc61+a1vHb5r+kcQHKn3SPsbid5Fh++Y/FsBbp9xedPYR7R67unUo/Mj4E2ou+Rvl7BHYtZoo9/llF83ss4wTLOIqLGpwa1S++UxuLhpwmY2li0Lpq1VVJbbjUW9/vtcup8mpM634E4dBuLgc8uxjYWj5Yi0VekPhwZ0VgMfnujexMi2VgMGLNa//6/VuzwNnMdVtmpL+DsCjiFuPqumn0fhTSu6O179efGlydHfBRSvwnRWfe5k9Pl1tpyrY14rdA6sOr5EUbq9kBip8nbJPefj1w62+lrLFrNU+szjlvnV1ca301pfXkz9VFIKvhd3Zair2Povir51MCDuRjhAEP21Al9aCwaNxCedwLqazZuxb+/m1m7MtdXSLyJf66cvKXxXOXZo7y33LinkXpV48sZrWPq2Wl9az97e/+iSWs7PTcPnluu/XrKe1/dk+/0bK1zSn55MxX89O/lDvQNwyv0dSRdnX1Ot58BA7C6PXUVO/Xpg4CgUp94LGdyY9G3WveHjIwZgDRdxRr22Vgkv16xnGrwz1R0u4pk51H1fD7ijsVYZoSDK7UA9nte+z1y4CvFDnWzGEXWwH5Par9HDnyl2KFuFqPIGtjpSe3osHd0qBCTIQTwpKuA+YwigPtdVwGZGEgAQDbFNhbefPBSUjHs7lx2d8DATMWOedMZLyUVw77OZV9HC2RR7LA3o1FXTD3s6ETiH+p/VRX/IGF3DCrgiLQUsBBDCwDIRmMBAGRTZmPhJid9dl0bezn4vRwnsIQyx795jT67ro1dHHzkg4x8bFCMMoeZ6YMB+y2PXRx5zIP0CyCwmlkj7TFWAy6Rj80SYdlphcQ/7JhHGPOoLJbIy5aNxf3+L+Ry3/oALMGXnVZI8MOOeXgxj8piibtoLJKLqcTycdljkQQ/5oCHF/CQLJboy8aNhcVisVgslsKWzRqLsGYGhYPYXZ2EPeCABxbwkOAgyhx75hRG2lephD3aaAcW7XjgUAw/ACAbjQUAkI3GAiiBjz8giDKHoimGr+ylYKIdZ5zjiXMkQJmj0SzDt3ZRM9EOMsjxBDkM4KHMAWmi4Vu7qJlQBxnqYIA4TA0AQDYaC2B/3C+BsAxOYGd0FRBZmePTvMNkkYsnwrFtfgybHwAwrMwhauphjrD1E+HAIhwDEFmZc4S5jznC1s/mB7b5AQDxmSaA6DQ0sCOGKxCargL2xYgF4tJVwO6UOWhNRmQRqpC2PZhQoQAiK3OyMAmSRahC2vBgQsUBCK7M+cI8SC5xammrI1l/v3FiDkxgAAOB6Cpg74xhIApdBRTAMAYAsimzsfC+h7wiVJTvOgC7UObEYUIku82LauUDWG13mwcWyKvMIW2qYgmH+ksS6+zOUIXyGNXANnQVUCQDGwDIRmMBAGRTZmPhFivLKfsvYC69F2MTilfmIDd5sahNCmyFneoqgPnKHOfmLxalsYi2cSAOQx0AyEZjAQBko7EAALIps7HwaS7rKOPvXi+08f+qykiEAypz2JvOWE0BvwW6xMaNQTisMge/SY3V7L2xMFiAvMwpAEA2GgsAIBuNBZCHT1WAe6mNhQmO9e3r+5V5N+gXQICXMucCcxzrO3JjAfBS5uRi0mQTe/ndDQMEWI75BQDIRmMBTOG2B5BkagC+pqsA+pQ5O5j12FDkv5CdZTvGFzCgzAnCxMe2Yv4Sh3EBrKDMicYEyuai/R6HQQGsw1wDfKYvAUYyWQAf6CqA8cwXwBBdBfCVMqcMUyFBRPhtDsMBWFOZM46ZlDi2/YUOYwFYWZmTjsmUOPbYWBhBwGSmD6BBVwHMYQYB3nQVwEwmEQAgmzIbC++6CGjN70kYAsBWypx9zKrEtM5XKZdeH2BAmROKiZKYAjYWBguQlzkFjktXAWRnWgEAstFYAADZlNlYuMFLcEt8DSLvagDTlDnFmDoJbqvGwtAAlrbsLPNfVR1tWTSeRLN5vSlaIJrFG4v7/d9xFnP00RRQ4YoWyEtjYY5mugIqXNECeWkszNFMV0CFK1ogL42FOZrpCqhwRQvkpbEwRzNdARWuaIG8ojQW13NVVdX5uv08a45mPI0FQMuqjcWje3g6/bl1nvqysfh7rqqq+n29/7vf/90uv6qqOl3+13o8vVx/V1VVnf/O2Ls5mk5jkb2uHht8DZqR5a1oge2sfseiOfNmbCxGPK6xILNlG4v0YNFYAKFt3Fg07mG8puD6u7THjY3HI6dfp9qDzdf+vv5sufn4r9Opqqpfl9u/+/3f/fbn9Hh5/wWg/vLT5X/p42ls5z3Fm6OPZnxjMaGuLu+bcO0W/F32P/fqGlvu1md3X4oWWMamjUXt5/cUfPtzas68p8v/fhqLdz9xvnbeur231vf4cwo+X3svALfuVJ48nufE/Wh0NBbHNbKxmFhXic9BBsq+PYje20nuS9ECy9iysei+n3tNwQ3nvz2vGtdYvP/3f5dT1XgD13MBqM/j6eN5TNyd29Hm6KP5qrGYVFd/z611muXd+LTltffmdtL7UrTAMoI2Fq3bv/Mai58bFefae7WBz8LrbxPPf9PH87rVrLE4tpGNxcy6aj41urH42U56X4oWWMaWjUV9vnvPj8/5t3kzYF5j8fMGrnp/2aKxTurbcI+XvG6WJJ/VWBxep8IXqauh8h76KORnO8l9KVpgGdv+uunjs4naG7lrqw+oqvp3LDr3OWr3eN9f3mw/Xt914wv29ZvMz4ajcdP4NS93j0djwf1+T/8di2x11fpq8+uWQ6u8h768meitG5tStEB2Uf5A1sLLs4NZ+g9wmaOPJkyFK1ogimM0FgN3mM3RzBClwhUtEMYxGgtzNMsooMIVLZCXxsIczXQFVLiiBfLSWJijma6ACle0QF4aC3M00xVQ4YoWyEtjYY5mugIqXNECeS3eWBxtWTSeRLN5vSlaIBp3LLz5Y7oCKlzRAnlpLMzRTFdAhStaIC+NhTma6QqocEULu1BV1eO/dcMrDz81sM5MGgtzNNMVUOGKNpyffyTmfN36SD66XU6ny23royhBfyRbPUS9G2j9PGDMahnPRmNhjma6Aipc0X5wu5yaF/nruapOl9tS19TrufrZ7tAubpdTVY0/gNbqA1tOPnV7/XuRzW7nqyC8Vu7+MOLga3pe89X229vcuov7FIoxjcXHnXSbjO8PdBSNhTma6QqocEX7we1yOp3Pp/rF/rTg2/Tb5fS6yH24/NeOasxm22fxTWPR9/i0xuLbl09ebcJpbuWbxqLvVkT32fo6Aytk7zA0FuZopiugwhXtB7fL6XS5/kz713N1vlxOjTsW73/f/vHU5fzzDrjzRv/9wOstdWOF96aq0/ncXLdzULfazY3mlp9tRG3Trxc89lN/T99zQO2d1q989bf7ydfdXnF4nVttjWeHU3/NtdZP1U+rs+vaI7O2fx3Y5jNgjTOshfR8vf38c9mppDZi+8t3OBkAAAOCSURBVAp3qh7qe7zVKqx5+lXNQJ0mn+0+WLljsbvlP3P0wRRQ4Yr2g+eMfz2/Zv/6fxt3GJ5XjtoF7H1hqc7X+rrX8/naXeHeuX6n38X+PPG6BLe2fLucXhenx05qr3j3GfdXozHi44NmI/W+pia3U49D/SAHPqp4baO2sXpU37Jsv/tRSCN3Ne/1fyJY1YPfjeE7xufz+Xy93+/X8/Pxbj00I9msprpq3B2Le+3zjr5WIym1z+n8gSx/a4jpNq83Rbu42iW5qr/7b7QX7ZUTP1fPTqLqXsvvtc5gTGPRuMa/3+emt9x6g946+KqucwDJnXaPMHmR7p7Fh+9APK/H3b7iw2cc07b/8XOT1l2Zvo2nYvjTR5yvj1sVr/+20p24CdTbVTzUH+muM/C/ycf71pnPHQtv/piugApXtB9072xPbywefpqAqY1F9w38fWDLnTv/t8up82lO6nwH4tBtLDJc+B+X/ERfkamxaG7/4zZbX6EdaCw64bpdTufro7t4/thuZZKNRfMDm7pXV1HVbksk1+kzZrXufifTWJijma6ACle0H/RdgW49H4U0rujtW9/nxsVqxEch9ZsQnXWfOzldbq0t179A8LNC68B+buOnbg8kdpq8TfK6/na203fhb13UW3f+b51fXRnZBEzY/shtvs6xt2tJx/B8eq11Pp/Pr7tK7Y9COnvsfMHk/aXL1//2dQzdVyWfGngwF42FOZrpCqhwRfvBh8aicQPheSegvubPM63vZtauzPUVEm+ynyv3XmUfV6Lmlhv3NFKvanw5o3VMPTutb+1nb+9fNOn74KC56+eWa7+e8t5X9+QTe//ZwXX29j99FPIK6HNrw/dF2jGstQfpb9gO3J3qfHvzfr+P+KSjb4W+jqTrno/GwhzNdAVUuKItUN/HGcF1363va/tLmtxY9K3W/SEjjYU5mukKqHBFW6B9Nhapr1fsafuLqgb/TEW3q0h2HlXP5yPuWIRezNFHU0CFK1ogL42FOZrpCqhwRQvkpbEwRzNdARWuaIG8NBbmaKYroMIVLZCXv7zpjxgy3eb1pmiBaMwpAEA2GgsAIBuNBQCQjcYCAMhGYwEAZKOxAACy0VgAANloLACAbDQWAEA2GgsAIBuNBQCQjcYCAMhGYwEAZKOxAACy0VgAANloLACAbDQWAEA2GgsAIBuNBQCQjcYCAMjm/333BkLhXUcvAAAAAElFTkSuQmCC" alt="" />

安装 Owin 程序包

Microsoft.AspNet.Identity.Owin 包含一组 OWIN 扩展类,用于管理和配置 OWIN 身份验证中间件,这些类由 ASP.NET Identity.Core 程序包使用。
Microsoft.Owin.Host.SystemWeb 包含一个 OWIN 服务器,使基于 OWIN 的应用程序可在 IIS 集成管道内运行。

添加 OWIN 启动类和身份验证配置类

[assembly: OwinStartup(typeof(Startup))]

public partial class Startup
{
public void Configuration(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
// 当用户登录时使应用程序可以验证安全戳。
// 这是一项安全功能,当你更改密码或者向帐户添加外部登录名时,将使用此功能。
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
}
}); }
}

OwinStartupAttribute 用于配置启动类,默认情况下会调用名为 Configuration 的方法,也可通过 MethodName 指定不同的方法名。

修改用户注册代码

使用户在注册后自动登录

var userStore = new UserStore<IdentityUser>();
var manager = new UserManager<IdentityUser>(userStore); var user = new IdentityUser() { UserName = ... };
IdentityResult result = manager.Create(user, ...); if (result.Succeeded)
{
var authenticationManager = this.HttpContext.GetOwinContext().Authentication;
var userIdentity = manager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie);
authenticationManager.SignIn(new AuthenticationProperties() { }, userIdentity);
}
else
{
}

ASP.NET Identity 和 OWIN Cookie Authentication 是基于声明的,因此需要为用户生成 ClaimsIdentity 对象。ClaimsIdentity 包含用户所有的声明信息,例如,用户属于哪些角色。可以在这里为用户添加更多声明。通过调用 AuthenticationManager.SignIn 方法使用户登录。IAuthenticationManager 接口在 OWIN 中定义。这段代码会产生一个 cookie,类似于 Forms 身份验证的 FormAuthentication.SetAuthCookie 方法。

添加登录代码

var userStore = new UserStore<IdentityUser>();
var userManager = new UserManager<IdentityUser>(userStore);
var user = userManager.Find(...); if (user != null)
{
var authenticationManager = this.HttpContext.GetOwinContext().Authentication;
var userIdentity = userManager.CreateIdentity(user, DefaultAuthenticationTypes.ApplicationCookie); authenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = false }, userIdentity);
// 登录成功
}
else
{
// 登录失败
}

GetOwinContext 是一个扩展方法,在 Microsoft.Owin.Host.SystemWeb 程序集中定义,它返回 IOwinContext 对象,OwinContext 公布 IAuthenticationManager 属性,表示对本次请求可用的身份验证中间件。

添加注销代码

var authenticationManager = this.HttpContext.GetOwinContext().Authentication;
authenticationManager.SignOut();

原文地址:http://www.asp.net/identity/overview/getting-started/adding-aspnet-identity-to-an-empty-or-existing-web-forms-project

上一篇:lombok在IntelliJ IDEA下的使用


下一篇:实现分布式队列ZooKeeper的实现