iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 27
0
Modern Web

ASP.NET Core 入門實戰30天系列 第 27

Day 27 使用ASP .NET Core 手把手打造一個購物網站 -Authorization & Authentication

  • 分享至 

  • xImage
  •  

前言

今天主要是要新增Authorization 和Authentication
並微調一下view的內容


step by step

新增一般使用者

前面新增的Product都是針對admin使用者
對於一般的user只需要view的權限就可以了
在這裡新增一個頁面給一般使用者的action
其中包含index和detail的兩個頁面

這裡將index取做ClientUserIndex
detail 叫做ClientUserDetails

public ActionResult ClientUserIndex()
{
   return View(_productRepository.GetAllProduct);
}

// GET: Product/Details/5
public ActionResult ClientUserDetails(int? id)
{
   if (id == null)
   {
       return NotFound();
   }

   var product = _productRepository.GetProductById(id.Value);
   if (product == null)
   {
     return NotFound();
   }

     return View(product);
}

同樣也要新增對應的兩個Razor view
內容和index以及detail都相同
只是要將edit 和delete拿掉
並且將連結的action改成新的路徑

ClientUserDetails.cshtml

  <a asp-action="ClientUserIndex">Back to List</a>
  //asp-action 是Microsoft.AspNetCore.Mvc.TagHelpers提供的tag helper,可以使用傳統寫法

ClientUserIndex.cshtml

<a asp-action="ClientUserDetails" asp-route-id="@item.Id">Details</a> 

Authentication

  1. 安裝Identity
  2. 確認安裝套件
  3. starup.cs
  4. Scaffold
  5. statup.cs

Authorization


View

viewimport

打開view的資料夾
可以看到除了個個Controller下對應的view資料夾
還多了兩個檔案

_ViewImports.cshtml

這個共用的檔案主要是將一開始需要參考的model拉出來寫成一個共用檔

因為已經有預先載入Models的檔案到view裡面了
可以將之後開發的view多餘的code拿掉

將上方的第一行改成

@model Product //只需要宣告要使用的model就好

其他頁面差不多
比較不相同的是index,宣告物件方式直接寫Product就可以了

@model IEnumerable<Product>

Viewcomponets

tag helpers


上一篇
Day 26 使用ASP .NET Core 手把手打造一個購物網站 - Update & Delete
下一篇
Day 28 鐵人賽章節回顧
系列文
ASP.NET Core 入門實戰30天30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言