当前位置: 首页 > news >正文

做软件开发视频网站汽车案例网站

做软件开发视频网站,汽车案例网站,中国电信 网站备案,建设主管部门指定网站在这一部分中#xff0c;我们将创建一个ASPNET核心项目#xff0c;作为我们授权服务器的最低设置。我们将使用MVC来提供页面#xff0c;并将身份验证添加到项目中#xff0c;包括一个基本的登录表单。 创建一个空的asp.net core项目 正如前一篇文章中所说#xff0c;授权…在这一部分中我们将创建一个ASPNET核心项目作为我们授权服务器的最低设置。我们将使用MVC来提供页面并将身份验证添加到项目中包括一个基本的登录表单。 创建一个空的asp.net core项目 正如前一篇文章中所说授权服务器只是另一个web应用程序。以下内容将指导您使用用户名密码登录来设置ASPNET Core应用程序。我选择不使用ASPNET core 标识来保持简单。基本上每个用户名密码组合都可以工作。 让我们从创建一个名为AuthorizationServer的新web应用程序开始使用 ASP.NET Core Empty template dotnet new web --name AuthorizationServer我们将只处理此项目并且不会在本指南中添加解决方案文件。 OpenIddict要求我们使用https协议即使在本地开发时也是如此。要确保本地证书是可信的您必须运行以下命令 dotnet dev-certs https --trust在Windows上证书将被添加到证书存储中在OSX上证书被添加到密钥链中。在Linux上没有一种跨发行版的标准方式来信任证书。在Hanselman的博客文章中关于这个主题的信息。 启动应用程序以查看是否一切正常 dotnet run --project AuthorizationServer访问localhost:5001应该能看到Hello World! mvc 我们已经创建了一个基于ASPNET Core Empty模板的项目。这是一个非常小的模板。我这样做是有意的因为我喜欢在我的项目中尽可能少的“噪音”以保持事情的清晰和简单。 使用这个模板的缺点是我们必须自己添加MVC。首先我们需要通过更改Startup.cs类来启用MVC var builder WebApplication.CreateBuilder(args); builder.Services.AddControllersWithViews(); var app builder.Build();app.UseStaticFiles();app.UseRouting();app.MapDefaultControllerRoute(); app.Run(); MVC是通过调用services.AddControllersWithViews()。端点设置为使用默认布线。我们还启用了静态文件的服务我们需要它来提供wwwroot文件夹中的样式表。 现在让我们创建控制器、视图和视图模型。首先在项目文件夹中添加以下文件夹结构注意大小写 /Controllers /Views /Views/Home /Views/Shared /ViewModels /wwwroot /wwwroot/css布局 我们添加的第一项是一个名为_layout.cshtml的布局文件该文件位于Views/Shared文件夹中。该文件定义了应用程序的总体布局还从CDN加载Bootstrap和jQuery。jQuery是Bootstrap的一个依赖项。 !DOCTYPE html html langen headmeta charsetutf-8 /meta http-equivX-UA-Compatible contentIEedgemeta nameviewport contentwidthdevice-width, initial-scale1.0, shrink-to-fitno /titleOpenIddict - Authorization Server/title* link relstylesheet hrefhttps://cdn.jsdelivr.net/npm/bootstrap4.5.3/dist/css/bootstrap.min.css crossoriginanonymous *link hrefhttps://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.3/css/bootstrap.min.css relstylesheetlink relstylesheet href~/css/site.css / /head bodydiv classcontainer-sm mt-3div classrow mb-3div classcol text-centerh1Authorization Server/h1/div/divdiv classrowdiv classcol-xs-12 col-md-8 col-xl-4 offset-md-2 offset-xl-4 text-center mb-3RenderBody()/div/div/div* script srchttps://code.jquery.com/jquery-3.5.1.slim.min.js crossoriginanonymous/script ** script srchttps://cdn.jsdelivr.net/npm/bootstrap4.5.3/dist/js/bootstrap.bundle.min.js crossoriginanonymous/script *script srchttps://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.slim.min.js/scriptscript srchttps://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.5.3/js/bootstrap.bundle.min.js/script /body /html为了使布局和视图正常工作我们需要将两个文件添加到\views文件夹中 _ViewStart.cshtml {Layout _Layout; }_ViewImports.cshtml addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers首页 在/Controllers文件夹中添加一个基本的HomeController其唯一目的是为我们的主页提供服务 将Index.chtml添加到Views/Home文件夹该文件夹由HomeController提供服务 h2MVC is working/h2最后但同样重要的是我们需要一些造型。将名为site.css的样式表添加到wwwroot\css文件夹中 :focus {outline: 0 !important; }.input-validation-error {border: 1px solid darkred; }form {width: 100%; }.form-control {border: 0;border-radius: 0;border-bottom: 1px solid lightgray;font-size: 0.9rem; }.form-control:focus {border-bottom-color: lightgray;box-shadow: none;}.form-control.form-control-last {border-bottom: 0;}.form-control::placeholder {opacity: 0.6;}.form-control.input-validation-error {border: 1px solid darkred;}一些样式规则已经添加到样式表中预计我们稍后将创建登录表单。 如果您想使用SASS或使用SASS自定义引导程序请查看我关于使用ASPNET设置引导程序SASS的文章。 让我们运行应用程序看看是否一切正常您应该在浏览器中看到这样的内容 启用身份验证 在ASP.NET Core身份验证由IAuthenticationService处理。身份验证服务使用身份验证处理程序来完成与身份验证相关的操作。 身份验证处理程序在启动期间注册其配置选项称为“方案(scheme)”。身份验证方案是通过在“startup”中Startup.ConfigureServices来指定的。 或者在这个项目中我们将使用cookie身份验证因此我们需要在Startup.cs的ConfigureServices方法中注册cookie身份验证方案 using Microsoft.AspNetCore.Authentication.Cookies;var builder WebApplication.CreateBuilder(args); builder.Services.AddControllersWithViews(); builder.Services.AddAuthentication(CookieAuthenticationDefaults.AuthenticationScheme).AddCookie(CookieAuthenticationDefaults.AuthenticationScheme, options {options.LoginPath /account/login;}); var app builder.Build();app.UseStaticFiles();app.UseRouting();app.MapDefaultControllerRoute(); app.Run(); 登录路径设置为/account/login我们将很快实现此端点。 通过调用应用程序的 IApplicationBuilder 上的 UseAuthentication 扩展方法来添加使用注册的身份验证方案的身份验证中间件 app.UseRouting(); app.UseAuthentication();//需要放在UseRouting和MapDefaultControllerRoute中间 app.MapDefaultControllerRoute();对 UseAuthentication 的调用是在调用 UseRouting 之后进行的以便路由信息可用于身份验证决策但在 UseEndpoints 之前进行以便用户在访问端点之前进行身份验证。 登录页面 现在我们已经启用了身份验证我们将需要一个登录页面来验证用户。 首先创建包含我们验证用户身份所需的信息的登录视图模型。 确保将此文件放入“ViewModels”文件夹中 using System.ComponentModel.DataAnnotations;namespace AuthorizationServer.ViewModels {public class LoginViewModel{[Required]public string? Username { get; set; }[Required]public string? Password { get; set; }public string? ReturnUrl { get; set; }} }在“Views”文件夹中创建一个名为“Account”的文件夹并添加登录视图“Login.cshtml”其中包含登录表单 model AuthorizationServer.ViewModels.LoginViewModelform autocompleteoff asp-routeLogininput typehidden asp-forReturnUrl /div classcardinput typetext classform-control form-control-lg placeholderUsername asp-forUsername autofocusinput typepassword classform-control form-control-lg form-control-last placeholderPassword asp-forPassword/divpbutton typesubmit classbtn btn-dark btn-block mt-3Login/button/p /form最后我们添加AccountController using AuthorizationServer.ViewModels; using Microsoft.AspNetCore.Authentication; using Microsoft.AspNetCore.Authentication.Cookies; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; using System.Security.Claims;namespace AuthorizationServer.Controllers {public class AccountController : Controller{[HttpGet][AllowAnonymous]public IActionResult Login(string returnUrl null){ViewData[ReturnUrl] returnUrl;return View();}[HttpPost][AllowAnonymous][ValidateAntiForgeryToken]public async TaskIActionResult Login(LoginViewModel model){ViewData[ReturnUrl] model.ReturnUrl;if (ModelState.IsValid){var claims new ListClaim{new Claim(ClaimTypes.Name, model.Username)};var claimsIdentity new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);await HttpContext.SignInAsync(new ClaimsPrincipal(claimsIdentity));if (Url.IsLocalUrl(model.ReturnUrl)){return Redirect(model.ReturnUrl);}return RedirectToAction(nameof(HomeController.Index), Home);}return View(model);}public async TaskIActionResult Logout(){await HttpContext.SignOutAsync();return RedirectToAction(nameof(HomeController.Index), Home);}} }那么这里会发生什么我们在帐户控制器上有两个登录操作GET 和 POST都允许匿名请求否则没有人能够登录。 GET 操作为我们刚刚创建的登录表单提供服务。 我们有一个可选的查询参数 returlUrl 我们将其存储在 ViewData 中因此我们可以在成功登录后使用它来重定向用户。 POST 操作更有趣。 首先验证 ModelState。 这意味着需要用户名和密码。 我们在这里不检查凭据任何组合在此示例中都是有效的。 通常您可以在此处根据数据库检查凭据。 当 ModelState 有效时将构建声明身份。 我们添加一项声明即用户的姓名。 请注意我们在创建声明身份时指定了 cookie 身份验证方案 (CookieAuthenticationDefaults.AuthenticationScheme)。 这基本上是一个字符串映射到我们在设置 cookie 身份验证时在 Startup.cs 类中定义的身份验证方案。 SignInAsync方法是一个扩展方法它调用AuthenticationService后者调用CookieAuthenticationHandler因为这是我们在创建声明标识时指定的方案。 登录后我们需要重定向用户。 如果指定了返回 url我们会在重定向之前检查它是否是本地 url以防止开放重定向攻击。 否则用户将被重定向到主页。 最后一个操作Logout调用身份验证服务以注销用户。身份验证服务将调用身份验证中间件在我们的例子中是cookie身份验证中间件来注销用户。 更新首页 更新主页Views/Home/Index.cshtml using Microsoft.AspNetCore.Authenticationif (User?.Identity?.IsAuthenticated true) {var authenticationResult await Context.AuthenticateAsync();var issued authenticationResult?.Properties?.Items[.issued];var expires authenticationResult?.Properties?.Items[.expires];divpYou are signed in as/ph2User.Identity.Name/h2hr /dldtIssued/dtddissued/dddtExpires/dtddexpires/dd/dlhr /pa classbtn btn-dark asp-controllerAccount asp-actionLogoutSign out/a/p/div }if (User?.Identity?.IsAuthenticated ! true) {divpYou are not signed in/ppa classbtn btn-sm btn-dark asp-controllerAccount asp-actionLoginSign in/a/p/div }如果用户已通过身份验证我们将显示用户名、当前会话信息和注销按钮。当用户未通过身份验证时我们会显示一个登录按钮用于将用户导航到登录表单。 账号密码随便输入即可 退出就会回到登录页面 目前我们有一个基本的ASPNET核心项目在运行并实现了身份验证到目前为止还没有什么新奇之处。接下来我们将把OpenIddict添加到项目中并实现客户端凭据流。
http://www.hkea.cn/news/14270250/

相关文章:

  • 自助网站建设方案门户网站开发要多少钱
  • 软件开发步骤包括哪些郑州网站建设专注乐云seo
  • 免费建设小说网站网页无法访问游戏
  • 坑梓网站建设怎么样视频背景网站
  • 徐州市城乡和城乡建设厅网站免费app制作网站
  • 搜网站旧域名一个网站有个前端后端怎么做
  • 县区工会网站建设方案绍兴免费做网站
  • 批量做网站网站站群优化
  • 软件代做网站在哪找活旅游 网站开发的项目描述
  • 做美食类网站分析海尔集团网站的网络营销是什么
  • 网站建设常用软件网页网站开发
  • 有没有做美食的小视频网站深圳龙华区民治街道
  • 网站jsp充值和体现系统怎么做宁波做网站优化公司
  • 黑龙江两学一做网站汕头潮南区
  • 未来的网站建设想法专业网站推广公司
  • 龙游做网站网络平台都有哪些
  • 一站式网页设计服务平台海口网站制作网站
  • 晋源网站建设微信微商城平台
  • 青岛网站建设大全纪检监察网站建设方案
  • 电商网站页面设计网页设计个人简介模板代码
  • 酒店做网站wordpress主题导航菜单
  • 网站后台编辑怎么做wordpress文章自动加载
  • 南昌p2p网站建设公司网站不收录的原因
  • 深圳网站 建设信科网络网站建设(中企动力)
  • 做的比较好看的国内网站网站制作
  • 网站开发如何记账wordpress商业破解
  • 资深的网站推广网站设计合同附件
  • 网站开发简述vps网站无法通过ip访问
  • 空间制作网站vps wordpress域名
  • 做情诗网站梦之翼wordpress主题站