Godaddy IIS 10 手動安裝SSL 憑證備忘

由於 SSL 不常安裝,每次都要稍微想一下,但是客戶常常都是等到過期了才急著要安裝,所以我把步驟紀錄一下,以避免出錯及縮短安裝時間。

將 .crt 檔案轉換為 .cer 檔案

  • 找到您下載的 .crt 檔案,然後點兩下開啟。
  • 點選「詳細資訊」分頁標籤,然後點選「複製到檔案」按鈕。
這張圖片的 alt 屬性值為空
  • 點選憑證精靈內的「下一步」。
  • 點選「Base-64 encoded X.509(.CER)」,然後點選「下一步」。
  • 點選「瀏覽」並指定您想儲存 .CER 檔案的位置,然後為憑證輸入名稱。
  • 點選「下一步」,然後點選「完成」。

接下來的步驟,官方文件寫得還滿清楚的,就不用多寫了

參考官方文件:https://tw.godaddy.com/help/manually-install-an-ssl-certificate-on-my-iis-10-server-27349

ASP.NET Core 3.0 登入機制實作(claims-based authentication)

我們開新專案時,專案範本可以選擇「個別使用者帳戶」驗證方式,這時候專案就會有登入的機制了,但是很多工程師都不這麼用,理由是:
1. 他是 core first 的方式,不是它們習慣的 db first。
2. 要客製化時要改很多code,感覺太麻煩。

不過有個時機可能會用到他,就是要整合第三方登入機制,如Facebook, Twitter..等等,因為只要設定一下,就可以了。

可以參考: https://docs.microsoft.com/zh-tw/aspnet/core/security/authentication/identity?view=aspnetcore-3.0&tabs=visual-studio

閱讀全文〈ASP.NET Core 3.0 登入機制實作(claims-based authentication)〉

ASP.NET Core 3.0 靜態檔案(Static Files)

在開發 ASP.NET MVC 5 時,css、fonts、js…等等的靜態檔案(Static Files),都是放在專案裡頭的 Content 的資料夾,但是在開發 ASP.NET Core 3.0 的時候,我們特別要注意的是,要必須 把HTML 所用到的靜態檔案放到 wwwroot 裡頭。

參考附圖中 wwwroot 資料夾及網頁相對路徑

ASP.NET Core 3.0 (Preview 7) 建立 Web 應用程式

使用 .NET Core 3.0 已經一陣子了,最早我是用 .NET Core 3.0 (Preview 5) 寫了公司的內部系統,剛開始不熟,直接在Controller 打預存程式回傳 ViewModel 的格式,直接給 Razor 來用,若以小型專案來說,算是一個滿有效率的解決方案。

目前開發 .NET Core 3.0 時,要使用 Visual Studio 2019,我目前的 版本 16.1.6。
另外安裝 .NET Core 3.0 的 SDK,下載連結: https://dotnet.microsoft.com/download/dotnet-core/3.0 ,可以下載 Preview 7 版

先來說明安裝後,如何開新專案

閱讀全文〈ASP.NET Core 3.0 (Preview 7) 建立 Web 應用程式〉

ASP.NET MVC ALERT訊息做法

這是一個簡單的問題,說明如下

Step01. 在Action中設定 TempData[“message”] = “此帳號已被註冊”;

[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Register(RegisterViewModel model)
{
    if (ModelState.IsValid)
    {
          var user = await UserManager.FindByNameAsync(model.UserName);

       if (user != null)
       {
            //TempData 只會被讀一次,之後就會失效
            TempData["message"] = "此帳號已被註冊";
            return View(model);
       }else
       {
            //執行註冊
            //完成後,轉頁
       }
     }
       return View(model);
}

Step02.在 _layout.cshtml 中判斷 TempData[“message”] 有沒有值,有值就出現alert

<!DOCTYPE html>
<html lang="zh-TW">
<head>
 @if (TempData["message"] != null)
{
    <script type="text/javascript">
        var message = @Html.Raw(Json.Encode(TempData["message"]));
        alert(message);
    </script>
}
</head>
<body>
   @RenderBody()
</body>
</html>