• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > 详解在ASP.NET Core中使用Angular2以及与Angular2的Token base身份认证

详解在ASP.NET Core中使用Angular2以及与Angular2的Token base身份认证

作者:微软一站式示例代码库 字体:[增加 减小] 来源:互联网 时间:2017-05-11

微软一站式示例代码库通过本文主要向大家介绍了详解在ASP.NET Core中使用Angular2以及与Angular2的Token base身份认证等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

Angular2是对Angular1的一次彻底的,破坏性的更新。

相对于Angular1.x,借用某果的广告语,唯一的不同,就是处处都不同。

•首先,推荐的语言已经不再是Javascript,取而代之的TypeScript,(TypeScript = ES6 + 类型系统 + 类型注解), TypeScriipt的类型系统对于开发复杂的单页Web app大有帮助,同时编译成javascript后的执行效率也比大多数手写javascript要快。有兴趣的同学可以查阅官方文档:英文传送门 |中文传送门。

•得益于彻底重构,性能相对于Angular1.x有了大幅提升,也更适合再全平台部署。

•Angular2是基于Component的,Component可以理解为是1.x时代的Controller + $Scope + view

•View的很多语法也做了更新,比如<li ng-repeat="movie in vm.movies"></li> 变成了 <li *ngFor="let movie of movies"></li>

关于Angular2,强烈建议查阅官方文档:英文传送门| 中文传送门

注意:本文章属于Step by step + Code Sample教程,且篇幅较长,建议下载本Sample并跟着本文进度自己重做一遍本例,下载完整代码并分析代码结构才有意义,下载地址:How to authorization Angular 2 app with asp.net core web api

1.前期准备

•推荐使用VS2015 Update3或更新的版本完成本示例,下载地址:http://www.weikejianghu.com/softjc/446184.html

•你需要安装.NET Core开发环境,这里提供VS版: http://www.weikejianghu.com/softs/472362.html

•安装Node.js 版本5.0.0或以上,(在本例中,这个主要是编译TypeScript用的)下载地址:Node.js and NPM

•NPM 3.0.0或以上,默认NPM会随着Node.js一并安装完毕。(在本例中,这个主要是下载各种Angular的各个包用的,参考VS中的Nuget)

2.创建项目

在VS中新建项目,项目类型选择 ASP.NET Core Web Application(.Net Core),输入项目名称为:CSAuthorAngular2InASPNetCore,Template选择为Empty.

3.在项目中整合Angular2

3.1.配置Startup.cs

注:添加下面的代码时IDE会报代码错误,这是因为还没有引用对用的包,进入报错的这一行,点击灯泡,加载对应的包就可以了。

(图文无关)

在ConfigureServices中添加如下代码

services.AddMvc();
</div>

这里是添加MVC服务

在Configure中添加如下代码

app.UseStaticFiles();

app.UseMvc(routes =>
{
  routes.MapRoute(
    name: "default",
    template: "{controller=Home}/{action=Index}");
});
</div>

第一句是启用静态文件,第二句是应用MVC模式并添加路由配置。

完整的代码应该是这个样子

public class Startup
{
  // This method gets called by the runtime. Use this method to add services to the container.
  // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=398940
  public void ConfigureServices(IServiceCollection services)
  {
    services.AddMvc();
  }

  // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
  public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
  {
    app.UseStaticFiles();

    app.UseMvc(routes =>
    {
      routes.MapRoute(
        name: "default",
        template: "{controller=Home}/{action=Index}");
    });
  }
}

</div>

3.2.添加控制器以及视图

3.2.1.在项目根目录下添加Controllers目录,并在其中添加一个控制器HomeController.cs,默认代码即可。

3.2.2.在项目跟目录下创建Views目录,在Views目录中新建目录Home, 最后在Home目录中新建视图Index.cshtml,内容应该是这样:

<html>
<head>
  <title>Angular QuickStart</title>
  <base href="/">
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <!-- 1. Load libraries -->
  <!-- Polyfill(s) for older browsers -->
  <script src="node_modules/core-js/client/shim.min.js"></script>
  <script src="node_modules/zone.js/dist/zone.js"></script>
  <script src="node_modules/reflect-metadata/Reflect.js"></script>
  <script src="node_modules/systemjs/dist/system.src.js"></script>
  <!-- 2. Configure SystemJS -->
  <script src="systemjs.config.js"></script>
  <script>
   System.import('app').catch(function(err){ console.error(err); });
  </script>
</head>
<!-- 3. Display the application -->
<body>
  <my-app>Loading...</my-app>
</body>
</html>
</div>

现在运行项目的话你仅仅能看到一个Loading,再控制台中你还能看到错误,这是因为我们还没有配置Angular。让我们前往wwwroot目录。

3.3.在项目的wwwroot目录中添加如下结构:

3.3.1搭建Angular2基础环境

•package.json

{
 "name": "angular-quickstart",
 "version": "1.0.0",
 "scripts": {
  "start": "tsc && concurrently \"tsc -w\" \"lite-server\" ",
  "lite": "lite-server",
  "postinstall": "typings install",
  "tsc": "tsc",
  "tsc:w": "tsc -w",
  "typings": "typings"
 },
 "licenses": [
  {
   "type": "MIT",
   "url": "https://github.com/angular/angular.io/blob/master/LICENSE"
  }
 ],
 "dependencies": {
  "@angular/common": "2.0.2",
  "@angular/compiler": "2.0.2",
  "@angular/core": "2.0.2",
  "@angular/forms": "2.0.2",
  "@angular/http": "2.0.2",
  "@angular/platform-browser": "2.0.2",
  "@angular/platform-browser-dynamic": "2.0.2",
  "@angular/router": "3.0.2",
  "@angular/upgrade": "2.0.2",
  "angular-in-memory-web-api": "0.1.5",
  "bootstrap": "3.3.7",
  "core-js": "2.4.1",
  "reflect-metadata": "0.1.8",
  "rxjs": "5.0.0-beta.12",
  "systemjs": "0.19.39",
  "zone.js": "0.6.25"
 },
 "devDependencies": {
  "concurrently": "3.0.0",
  "gulp": "^3.9.1",
  "lite-server": "2.2.2",
  "typescript": "2.0.3",
  "typings": "1.4.0"
 }
}
</div>

•systemjs.config.js

(function (global) {
  System.config({
    paths: {
      // paths serve as alias
      'npm:': 'node_modules/'
    },
    // map tells the System loader where to look for things
    map: {
      // our app is within the app folder
      app: 'app',
      // angular bundles
      '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
      '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
      '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
      '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
      '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
      '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
      '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
      '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
      '@angular/upgrade': 'npm:@angular/upgrade/bundles/upgrade.umd.js',
      // other libraries
      'rxjs': 'npm:r



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

相关文章

  • 2017-05-11基于自定义Unity生存期模型PerCallContextLifeTimeManager的问题
  • 2017-05-11asp.net(c#)利用构造器链的代码
  • 2017-05-11浅谈ADO.NET数据库脚本
  • 2017-05-11.net中的session与cookies区别及使用方法
  • 2017-05-11Asp.Net Couchbase Memcached图文安装调用开发
  • 2017-05-11C#开发微信 二维码鼠标滑动 图像显示隐藏效果(推荐)
  • 2017-05-11asp.net 通过aspnetpager为DataList分页
  • 2017-05-11Asp.Net 无刷新文件上传并显示进度条的实现方法及思路
  • 2018-08-20.net WCF简单实例详解(5)
  • 2017-05-11C#读取中文字符及清空缓冲区的实现代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 关于asp.net 自定义分页控件
    • 如何建立ASP.NET站点
    • SQL Server LocalDB 在 ASP.NET中的应用介绍
    • asp.net中操作Excel助手相关代码
    • ASP.net 路径问题 详细说明
    • ASP.NET购物车实现过程详解
    • Community Server专题一:概述Community Server
    • .Net 实现图片缩略图上传通用方法
    • asp.net中GridView控件遍历的小例子
    • ajaxToolkit:TextBoxWatermarkExtender演示与实现代码

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有