我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ASP.NETIdentity的基本用法

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ASP.NETIdentity的基本用法

早在2005年的时候,微软随着ASP.NET 推出了membership机制,十年磨一剑,如今的ASP.NET Identity是否足够强大,一起来体会。

在VS2013下新建项目,选择"ASP.NET Web应用程序。",点击"确定"。

选择"MVC"模版。

创建的网站包括三个核心组件:

  • 1、Microsoft.AspNet.Identity.EntityFramework

这是基于ASP.NET Identity的Entity Framework实现,用来持久化ASP.NET Identity数据和架构,以及负责和SQL Server数据库交互。

  • 2、Microsoft.AspNet.Identity.Core

包含了ASP.NET Identity的核心接口,用来针对不同的持久层,比如Azure Table Storeage, NoSQL数据库等做不同的实现。

  • 3、Microsoft.AspNet.Identity.OWIN

OWIN是一个安全中间件,Microsoft在此基础上作了再开发,如记录日志,产生cookie的时候用到。

各组件的依赖关系如图:

F5运行项目。

点击右上角的注册按钮,填写注册信息,点击"注册"按钮,新用户注册成功并呈登录状态。

点击VS2013的"停止调试"按钮。

存储的数据放在了哪呢?

右键App_Data,点击"在文件资源管理器中打开文件",原来数据库被存放在项目文件夹App_Data下了。

如何查看这些数据呢?

点击VS2013的左上角"服务器资源管理器",右键"DefaultConnection",从中可以查看所有的数据。

比如用户数据被存放在表"AspNetUsers"中。

点击"注册"按钮,是把请求交给了AcccountController的Register这个Action。

        [HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> Register(RegisterViewModel model)
        {
            if (ModelState.IsValid)
            {
                var user = new ApplicationUser() { UserName = model.UserName };
                var result = await UserManager.CreateAsync(user, model.Password);
                if (result.Succeeded)
                {
                    await SignInAsync(user, isPersistent: false);
                    return RedirectToAction("Index", "Home");
                }
                else
                {
                    AddErrors(result);
                }
            }
            // 如果我们进行到这一步时某个地方出错,则重新显示表单
            return View(model);
        }

以上,

  • 通过ApplicationUser来实例化一个用户
  • 通过UserManager的静态、异步方法CreateAsync创建用户
  • 通过异步方法SignInAsync来让用户登录
        private async Task SignInAsync(ApplicationUser user, bool isPersistent)
        {
            AuthenticationManager.SignOut(DefaultAuthenticationTypes.ExternalCookie);
            var identity = await UserManager.CreateIdentityAsync(user, DefaultAuthenticationTypes.ApplicationCookie);
            AuthenticationManager.SignIn(new AuthenticationProperties() { IsPersistent = isPersistent }, identity);
        }

以上

  • 所有验证的事交给了AuthenticationManager,负责登录登出
  • 把创建ClaimsIdentity交给了UserManager

至于登出,请求交给了AccountController的LogOff。

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

还没有看到ASP.NET Idenity有多少过人之处,让时间来告诉我们。

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对编程网的支持。如果你想了解更多相关内容请查看下面相关链接

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ASP.NETIdentity的基本用法

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ASP.NETIdentity的基本用法

这篇文章介绍了ASP.NETIdentity的基本用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2022-11-13

BeautifulSoup的基本用法

前言Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库.它能够通过你喜欢的转换器实现惯用的文档导航,查找,修改文档的方式。 它是一个灵活又方便的网页解析库,处理高效,支持多种解析器。利用它就不用编写正则
2023-01-30

Java Map的基本用法

Java Map接口 (推荐学习:java课程)java.util.Map 接口 查找表Map 体现的结构是一个多行两列的表格,左列称为key右列称为value.Map 总是根据key来获取对应的value.因此保
Java Map的基本用法
2016-01-24

requests基本用法

requests比起urllib更加方便简单,有了它,cookies,登陆验证,代理设置等操作都很容易解决.安装requestspip3 install requests基本用法importrequestsr=requests.get("h
2023-01-30

DecimalFormat基本用法

DecimalFormat是一个用来格式化数字的类。它可以将数字格式化为不同的形式,比如保留小数位、添加千位分隔符等。基本用法如下:1. 创建DecimalFormat对象:可以通过构造函数创建DecimalFormat对象,也可以使用工厂
2023-09-09

Html.DropDownListFor基本用法

Html.DropDownListFor是ASP.NET MVC框架中用于创建下拉列表的HTML Helper方法。它的基本用法如下:1. 定义数据源:首先,我们需要定义下拉列表的数据源。可以使用IEnumerable来表示数据源,其中每个
2023-09-27

Numpy的基本用法整理

本篇内容主要讲解“Numpy的基本用法整理”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Numpy的基本用法整理”吧!前言Numpy是一个开源的Python科学计算库,它是python科学计算库
2023-06-04

pytest中的fixture基本用法

fixture是pytest特有的功能,用以在测试执行前和执行后进行必要的准备和清理工作,这篇文章主要介绍了pytest中的fixture基本用法,需要的朋友可以参考下
2023-02-24

sql中exists的基本用法

EXISTS是SQL中用于判断一个子查询是否有返回结果的关键字,返回值为true或者false,表示子查询是否存在结果,基本语法为“SELECT column1, column2”,column1, column2, ... 是需要查询的列
sql中exists的基本用法
2024-01-29

PHP基本语法的使用

本篇内容主要讲解“PHP基本语法的使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“PHP基本语法的使用”吧!PHP,是英文超级文本预处理语言Hypertext Preprocessor的缩写。
2023-06-17

GNS3的基本使用方法

GNS3 基本使用方法1.一张基本的拓扑图需要一台路由器,一台交换机,PC一台这里是所有的路由器和交换机及PC,在GNS3里面将路由器直接拖到工作面板中是没有用的,因为每个路由器需要对应的镜像,如图所示:添加镜像的方法在这里面选择对
2023-01-31

VBS中SendKeys的基本用法

这篇文章主要介绍“VBS中SendKeys的基本用法”,在日常操作中,相信很多人在VBS中SendKeys的基本用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”VBS中SendKeys的基本用法”的疑惑有所
2023-06-09

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录