ASP.NET程序设计教程1---第一个ASP.NET程序

教程以VS2010为开发平台(也可以使用VS2015及以上的IDE),以C#为开发语言,面向初次接触web应用程序设计的读者,从零开始,采用案例的方式,全面、细致的介绍ASP.NET的基础知识和具体应用。
1 ASP.NET概述
计算机应用程序一般分为两种架构类型:C/S(Client/Server)和B/S(Browser/Server)。B/S架构的应用程序通常要基于web运行,故也被称为web应用程序。一个web应用程序又可分为前端和后端两个部分。前端主要提供一个显示操作和数据展示等功能,后端提供数据收集、分析和处理等功能,能将处理后的数据传递给前端进行展示。
C/S架构如图1-1所示。程序员需要将开发完成的软件安装在目标机(客户机)中,将数据库安装在服务器中,用户通过安装在目标机中的软件和网络与数据库进行操作。如果是单机版应用程序,数据库直接安装在本地计算机中即可。


c/s架构

C/S架构应用程序的最重要特征就是要求目标机种必须安装客户端的应用程序,否则无法工作。常用的软件,比如QQ、微信、网络游戏都属于C/S架构的应用程序。
而B/S架构应用程序仅需要通过浏览器访问即可,无需再安装任何客户端程序。B/S架构如图1-2所示。由客户机、web应用服务器和数据库服务器3部分组成,在中小型应用中,可以将web服务器和数据库服务器部署在同一台计算机中。在大型应用系统中,可以将web服务器和数据库服务器部署在不同的计算机中,甚至可以为web服务器和数据库服务器部署冗余机器(备胎)以实现发生故障时,快速切换。在超大型应用系统中,会为web服务和数据库服务部署多台服务器构成服务器集群,以实现分布式数据处理的需要(补充知识:百度搜索,淘宝技术这10年。了解更多关于超大型应用相关知识)。

在这里插入图片描述

在B/S架构的应用程序中,主要的数据分析和处理工作室在服务器中完成,它将处理结果一html网页的形式推送给客户机的浏览器进行展示。B/S架构的应用程序有网页游戏、淘宝、京东等。在浏览器端主要用来收集用户数据、下达指令和接收服务器处理结果,所以对客户机的配置要求不高,适合"瘦客户机"的运行环境。

1.1 静态网页和动态网页
早期的网页都是使用纯HTML编写的,网页之间通过超链接进行跳转,这种网页称为静态网页。而动态网页能够很好地与用户进行全方位的互动,并能根据用户的需要动态的返回不同的HTML页面。注意:包含了一些动画效果的页面不能称为动态网页,动态网页强调的是与用户有交互,特别是数据方面的交互。
1.1.1 静态网页
静态网页有以下一些特征:(1)网页的内容(文本、图像、声音和超链接等)和外观对于任何一个访问者无论以什么样的方式访问都是保持不变的。(2)网页中不包含除了超链接以外的任何与客户端进行交互的功能。
1.1.2 动态网页
动态网页依据代码处理位置的不同分为客户端动态网页和服务端动态网页。
(1)客户端动态网页
包含JavaScript、VBScript、ActiveX控件、jQuery、Ajax等,在客户端与用户实现交互。
客户端动态网页技术可以充分利用本地计算机硬件资源,在客户端完成各类数据的分析、判断和其他一些工作。
(2)服务端动态网页
服务器端动态网页与客户端动态网页的主要不同在于所有的数据分析、判断和其它处理工作都在服务器端进行,服务器只将处理好的结果以HTML代码流的形式发送给客户端。
ASP.NET就是用于开发服务器端动态网页的一个常用工具。
1.2 使用VS2010建立第一个ASP.NET程序
在visual studio中选择“文件”–>“新建”–>“网站命令”,具体操作如图1-3所示。


图1-3

图1-3 创建web网站过程

弹出如图1-4所示的“新建网站”对话框。选择visual C#语言,ASP.NET网站。


图1-4

图1-4 “新建网站”对话框
注意图1-4中的“Web位置”下拉列表框中为用户提供了“文件系统”“HTTP”“FTP”3种文件夹的保存方式。在这里我们使用“文件系统方式”,该方式适合独立设计者或学习时使用。点击“确定”,完成网站的创建过程。接着“开始执行”(快捷键ctrl + F5)。可以看到如图1-5所示的网站。这是由visual studio自动生成的一个网站。也是各位初学者的第一个ASP.NET程序。

在这里插入图片描述

图1-5 我的第一个ASP.NET程序
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ASP.NET Core 提供了内置的身份验证和授权功能,可以轻松地实现用户的登录和登出功能。 要实现登录功能,首先需要在 ConfigureServices 方法中添加身份验证服务: ```csharp services.AddAuthentication(options => { options.DefaultScheme = CookieAuthenticationDefaults.AuthenticationScheme; options.DefaultChallengeScheme = GoogleDefaults.AuthenticationScheme; }) .AddCookie(options => { options.LoginPath = "/Account/Login/"; options.LogoutPath = "/Account/Logout/"; }) .AddGoogle(options => { options.ClientId = Configuration["Authentication:Google:ClientId"]; options.ClientSecret = Configuration["Authentication:Google:ClientSecret"]; }); ``` 上面的代码中,我们添加了 Cookie 身份验证服务,并指定了登录和登出的路径。同时,我们还添加了 Google 身份验证服务,并设置了 ClientId 和 ClientSecret。 接着,在 Configure 方法中启用身份验证中间件: ```csharp app.UseAuthentication(); ``` 现在,我们可以在 AccountController 中添加 Login 和 Logout 的动作方法: ```csharp public IActionResult Login(string returnUrl = "/") { ViewData["ReturnUrl"] = returnUrl; return View(); } [HttpPost] public async Task<IActionResult> Login(LoginViewModel model, string returnUrl = "/") { if (ModelState.IsValid) { var result = await _signInManager.PasswordSignInAsync(model.Email, model.Password, model.RememberMe, lockoutOnFailure: false); if (result.Succeeded) { _logger.LogInformation("User logged in."); return RedirectToLocal(returnUrl); } if (result.RequiresTwoFactor) { return RedirectToAction(nameof(LoginWith2fa), new { returnUrl, model.RememberMe }); } if (result.IsLockedOut) { _logger.LogWarning("User account locked out."); return RedirectToAction(nameof(Lockout)); } else { ModelState.AddModelError(string.Empty, "Invalid login attempt."); return View(model); } } // If we got this far, something failed, redisplay form return View(model); } [HttpPost] public async Task<IActionResult> Logout() { await _signInManager.SignOutAsync(); _logger.LogInformation("User logged out."); return RedirectToAction(nameof(HomeController.Index), "Home"); } ``` 上面的代码中,我们首先添加了一个 Get 请求的 Login 方法,用于显示登录页面。接着,我们添加了一个 Post 请求的 Login 方法,用于处理用户提交的登录表单。在这个方法中,我们调用了 _signInManager.PasswordSignInAsync 方法进行身份验证,并根据不同的结果进行相应的处理。最后,我们还添加了一个 Logout 方法,用于处理用户的登出请求。 现在,我们只需要在视图中添加相应的表单,就可以实现登录和登出功能了: ```html <form asp-action="Login" asp-route-returnUrl="@ViewData["ReturnUrl"]" method="post"> <div class="form-group"> <label asp-for="Email"></label> <input asp-for="Email" class="form-control" /> <span asp-validation-for="Email" class="text-danger"></span> </div> <div class="form-group"> <label asp-for="Password"></label> <input asp-for="Password" class="form-control" /> <span asp-validation-for="Password" class="text-danger"></span> </div> <div class="form-group"> <div class="checkbox"> <label asp-for="RememberMe"> <input asp-for="RememberMe" /> @Html.DisplayNameFor(m => m.RememberMe) </label> </div> </div> <div class="form-group"> <button type="submit" class="btn btn-primary">Login</button> </div> </form> <a asp-action="Logout" asp-controller="Account">Logout</a> ``` 上面的代码中,我们添加了一个登录表单和一个登出链接,用于演示登录和登出功能。其中,登录表单使用了 asp-for 和 asp-validation-for 标签帮助器,可以自动生成相应的 HTML 元素和验证信息。登出链接使用了 asp-action 和 asp-controller 标签帮助器,可以自动生成相应的 URL。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值