ASP.NET Identity

 一、ASP.NET Identity入门

二、功能和API

三、可扩展性

四、迁移

一、ASP.NET Identity入门

1,开始使用ASP.NET Identity

①用个人帐户创建一个ASP.NET MVC应用程序。 您可以在ASP.NET MVC,Web窗体,Web API,SignalR等中使用ASP.NET Identity。在本文中,我们将从ASP.NET MVC应用程序开始。

②创建的项目包含以下三个包

 Microsoft.AspNet.Identity.EntityFramework 将ASP.NET Identity数据结构持久化到SQL Server中

 Microsoft.AspNet.Identity.Core 这个包有ASP.NET身份的核心接口。这个包可以用来编写针对不同持久化存储的ASP.NET Identity实现,比如Azure表存储,NoSQL数据库等等。

 Microsoft.AspNet.Identity.Owin  此包中包含用于在ASP.NET应用程序中使用ASP.NET Identity插入OWIN身份验证的功能。当您将登录功能添加到您的应用程序并调用OWIN Cookie身份验证中间件来生成cookie时,会使用此功能。

③创建一个用户。
启动应用程序,然后点击注册链接来创建一个用户。

当用户点击注册按钮时,Account控制器的Register操作通过调用ASP.NET Identity API来创建用户,如下所示:

④登录

如果用户成功创建,则通过SignInAsync方法登录

        //
        // POST: /Account/Register
        [HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser { UserName = model.Email, Email = model.Email };
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    //如果用户成功创建,则通过SignInAsync方法登录。
                    await SignInManager.SignInAsync(user, isPersistent:false, rememberBrowser:false);
                    
                    // 有关如何启用帐户确认和密码重置的详细信息,请访问 https://go.microsoft.com/fwlink/?LinkID=320771
                    // 发送包含此链接的电子邮件
                    // string code = await UserManager.GenerateEmailConfirmationTokenAsync(user.Id);
                    // var callbackUrl = Url.Action("ConfirmEmail", "Account", new { userId = user.Id, code = code }, protocol: Request.Url.Scheme);
                    // await UserManager.SendEmailAsync(user.Id, "确认你的帐户", "请通过单击 <a href=\"" + callbackUrl + "\">這裏</a>来确认你的帐户");

                    return RedirectToAction("Index", "Home");
                }
                AddErrors(result);
            }

            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return View(model);
        }
private async Task SignInAsync(ApplicationUser user, bool isPersistent)
{
    AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);

//由于ASP.NET身份和OWIN Cookie身份验证是基于声明的系统,因此该框架需要应用程序为用户生成ClaimsIdentity
    var identity = await UserManager.CreateIdentityAsync(
       user, DefaultAuthenticationTypes.ApplicationCookie);
//通过使用OWIN中的AuthenticationManager并调用SignIn并传入ClaimsIdentity来签署用户。
    AuthenticationManager.SignIn(
       new AuthenticationProperties() { 
          IsPersistent = isPersistent 
       }, identity);
}

⑤注销

// POST: /Account/LogOff
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult LogOff()
{
    AuthenticationManager.SignOut();
    return RedirectToAction("Index", "Home");
}

 

 

 

 

 

二、功能和API

 

三、可扩展性

 

四、迁移

 

转载于:https://www.cnblogs.com/zd1994/p/7828616.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值