2020年8月24日 星期一

ssls.com 憑證流程

https://www.ssls.com/
1.在官網上面購買
2.至Server上IIS 建立憑證要求
-----BEGIN NEW CERTIFICATE REQUEST-----
中間內容
-----END NEW CERTIFICATE REQUEST-----
3.SSL.com上輸入CSR選擇windows按確定(勿使用自動的)
4.聯絡線上客服驗證看要怎麼驗證用DNS 他會給host and target設定一組CName一下就可以
5.下載憑證上傳至Server
6.IIS完成憑證要求
7.IIS網站更新繫結
如果在伺服器上完成憑證後按F5不見
就要重建立憑證要求重作
很久沒用搞了兩天終於可以了
給自己筆記一下

2020年7月3日 星期五

.Net Core Razor decimal 去除後面多於小數點

<input type="number" asp-for="@Model[i].Field" class="form-control text-right" required step="1" asp-format="{0:0.#}" >
自己筆記一下

2020年4月24日 星期五

.Net Core One Form MultipeSubmit with ajax

之前一個from多按鈕作法在網路上很多
MultipleButtonAttribute<=之前都用這個方式可Google就有了
使用.Net Core時單純的直接submit的話一般方法都可以
目前使用jquery.unobtrusive-ajax來做的話都送不到後端
但用習慣了還是想繼續用下去
試過了很多方法最後找到一篇文章經測試後可以使用
Html部分如下跟之前一樣只是沒特別指定asp-controller and asp-action
 
<form data-ajax-begin="OnBegin" data-ajax-complete="OnComplete" data-ajax-method="post" data-ajax-success="OnSuccess" data-ajax="true" id="from1" method="post">
<div class="form-group">
<button class="btn btn-primary" id="Edit" type="submit">編輯</button>
      <button class="btn btn-danger" id="Delete" type="submit">刪除</button>          
   </div>
</form>
javascript部分使用jquery在按鈕點擊後加上data-ajax-url的url
這是這次的重點部分
 
<script src="~/lib/Microsoft.jQuery.Unobtrusive.Ajax/jquery.unobtrusive-ajax.min.js"></script>
     <script>
        $("#Edit").on("click", function () {
            $("#from1").attr("data-ajax-url", "@Url.Action("自訂Action", "自訂Controller")" );
        });

        $("#Delete").on("click", function () {
              if (!confirm("確定刪除!!"))
                    return false;

            $("#from1").attr("data-ajax-url", "@Url.Action("自訂Action", "自訂Controller")" );
        });
    </script>
後端部分宣告兩個ActionResult來接收即可
 
[HttpPost]
[ValidateAntiForgeryToken]       
public IActionResult Edit()
{
    ResultViewModel result = new ResultViewModel();
    return Json(result);
}

[HttpPost,ActionName("Delete")]
[ValidateAntiForgeryToken]     
public IActionResult DeleteConfirmed()
{
     ResultViewModel result = new ResultViewModel();
return Json(result);
}
個人覺得這樣寫程式有點不好看
但目前好像就只有這方法可行
歡迎有更好方法可以提供謝謝
參考網址:
jQuery Unobtrusive Ajax Helpers in ASP.NET Core
Multiple Submit Buttons

2020年3月12日 星期四

c# 基礎連接已關閉: 無法為 SSL/TLS 安全通道建立信任關係。

公司將一些網站改走SSL後發現有些POST取資料功能失效了
出現基礎連接已關閉: 無法為 SSL/TLS 安全通道建立信任關係
解法辦法

 ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;<=加入
 ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;<=加入

參考來源:
[faq]解決C#呼叫有ssl憑證問題的網站出現遠端憑證是無效的錯誤問題
C# HttpReques 基礎連接已關閉: 無法為 SSL/TLS 安全通道建立信任關係 強制跳過 TLS驗證
C# 連線 HTTPS 網站發生驗證失敗導致基礎連接已關閉

2020年1月16日 星期四

Blazor 好用Component

Blazor 已經跟Angular一樣都是用Component
雖然jQuery部分還是可以是使用
但jQuery UI部分在使用上可能無法那麼順利
所以目前可能真的要走向Blazor Component方式
以下目前覺得好用的Component
如果您有不錯的可以提供謝謝

AutoComplete
Typeahead

DatePicker
BlazorDateRangePicker

Verification(自訂驗證比設定在model class來的彈性)
Integrating FluentValidation with Blazor

Pagination(我是參考以下三篇做成一個自己需要的Pagination Component)
Blazor.Pagination
Building Blazor shared pager component
8 - Blazor - Pagination with ASP.NET Core, Entity Framework Core and Blazor

Sortable(參考下篇應該就能做出了)
Exploring Blazor by Making An HTML Table Sortable in .NET Core

Third Party(可能需要付費)
Telerik
Syncfusion
Radzen
matblazor.com
Blazorise
如果有需要可以自行決定


參考
ASP.NET Core Blazor JavaScript interop

2019年12月30日 星期一

.Net Core 問題6 Scaffold-DbContext Build failed.

承接問題4.Net Core 問題4 DB First
剛發現Build failed
如過自行修改了Scaffold-DbContext所產生的class很容易遇到
目前我是三層式架構所以有多專案在一個方案裡面
測試了兩三次
先將其他專案都移除後再執行Scaffold-DbContext
就可以順利產生class之後再將其他專案加回來
有更好辦法也可提供

2019年12月20日 星期五

.Net Core 問題5 3.0以上版本分頁問題

今天寫了Blazor的Sample專案測試到了分頁時
 stafflist = await this._staffService.GetAll().Skip(1).Take(1).ToListAsync();

出現了下列錯誤
SqlException: 接近 'OFFSET' 之處的語法不正確。 FETCH 陳述式中的選項 NEXT 使用方式無效。 context
後來找到一堆方法
ervices.AddDbContext(options => options.UseSqlServer(ConnectionString));
改成
services.AddDbContext(options => options.UseSqlServer(ConnectionString,build =>build.UseRowNumberForPaging()));
很好一樣出錯,後來找到了原因,目前使用的資料庫是SQL Server 2008R2
微軟提到了已移除 UseRowNumberForPaging 目前可能只有兩條路
1.升級SQL Server
2.降低.Net Core版本
3.Dapper或其他可直接下SQL語法

2019年12月9日 星期一

.Net Core 問題4 DB First

必須安裝下列安裝(套件管理主控台)
Install-Package Microsoft.EntityFrameworkCore.SqlServer -Version 3.1.0
Install-Package Microsoft.EntityFrameworkCore.SqlServer.Design -Version 1.1.6
Install-Package Microsoft.EntityFrameworkCore.Tools -Version 3.1.0
//第一次乾淨時
Scaffold-DbContext "Server=192.168.0.1;Database=Sample;user id=sa;password=1234567;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Project sample.model
//有更新時
Scaffold-DbContext "Server=192.168.0.1;Database=Sample;user id=sa;password=1234567;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Project sample.model -Force
//需與原資料庫同檔名時
Scaffold-DbContext "Server=192.168.0.1;Database=Sample;user id=sa;password=1234567;" Microsoft.EntityFrameworkCore.SqlServer -OutputDir Models -Project sample.model -use-database-names

常遇到Build failed或是直接沒反應