テンプレートテスト
ブログの説明
ブログの説明2
menu
keyboard_arrow_up
Top
search
close
home
ホーム
computer
PC一般
construction
開発環境・ツール
code
プログラミング
home
ホーム
computer
PC一般
construction
開発環境・ツール
code
プログラミング
Home
›
Archives for 4月 2020
2020/04/27
image
NO IMAGE
[C#] 文字列内の文字が全て同じかどうかをチェックする
update
event_note
label
C#
例えば `99999` や `aaaa` など、文字列内の文字が全て同じかどうかを簡単にチェックする方法です。
まず、単純に同じ文字かどうかだけを判定するなら、Linq を使えば一発です。 ```cs var str = "99999"; Console.WriteLine(str.Distinct().Count() == 1);// True ``` 重複を排除した結果、要素数が1つだけになっていれば全て同じ文字と判断できます。 特定の文字の場合のみ、文字列内が全て同じ文字かどうかを判定したいなら、フィルタリングする必要があります。 ``` var str1 = "00000"; var str2 = "00999"; var str3 = "99999"; // 文字が全て 9 の場合のみ True にしたい Console.WriteLine(!str1.Any(x => x != '9') && str1.Distinct().Count() == 1);// False Console.WriteLine(!str2.Any(x => x != '9') && str2.Distinct().Count() == 1);// False Console.WriteLine(!str3.Any(x => x != '9') && str3.Distinct().Count() == 1);// True ``` - `9` 以外の文字を抽出した結果、要素数が 0 だったならば `9` 以外の文字が含まれていない - 重複を排除した結果、要素数が1つだけになっていれば全て同じ文字 この2つの条件で判断できます。 コード自体は短いですが、毎回これを書くのも面倒なので、拡張メソッドでも作成しておくと便利かと思います。 もっと簡単に判別できる方法があれば教えてください。
## 参考 URL - https://teratail.com/questions/140064
Read more
2020/04/26
image
NO IMAGE
OpenSSL で SAN 付きの自己署名証明書を作成する
update
event_note
label
OpenSSL
サーバー証明書に自己署名証明書を使っているとブラウザが警告を表示しますが、クライアント PC に証明書をインストールしても Chrome だけは警告が消えませんでした。
Chrome はコモンネームではなく SAN(Subject Alternative Name) をチェックしているからだそうです。(Chrome 58 以降) そこで、以前 OpenSSL を使って自己署名証明書を作成しましたが、 - [OpenSSL を使って自己署名証明書を作成する](http://kuttsun.blogspot.com/2018/04/openssl.html) 今回はこれに SAN を加える方法です。 細かい説明は以前の記事(上記)に書いてあるので、ここでは実行するコマンドのみを載せたいと思います。 ## SAN 用のテキストファイルを用意 事前準備として、以下のように SAN の内容を記述したテキストファイルを用意します。 ファイル名は何でも構いません(今回は `san.txt` という名前で保存しました)。 ``` subjectAltName = DNS:*.example.com, IP:172.20.0.1 ``` DNS ではワイルドカードが使えますが、IP では使えません。 ## 自己署名証明書の作成手順 ### 秘密鍵の作成 以下のコマンドは公開鍵暗号方式として RSA を利用した 2048bit の秘密鍵 server.key を作成しています。 ```sh > openssl genrsa -out server.key 2048 ``` ### 証明書署名要求の作成 先ほど作成した秘密鍵 `server.key` を指定して証明書署名要求 `server.csr` を作成しています。 ```sh > openssl req -out server.csr -key server.key -new ``` いろいろ聞かれるので、適当に入力します。 ### サーバー証明書の作成 通常は上記で作成した証明書署名要求 `server.csr` を自分の秘密鍵 `server.key` で署名してサーバー証明書を作成します。 ここが前回と異なるところです。 SAN を付加するために `-extfile san.txt` が追加になっています。 ```sh > openssl x509 -req -days 3650 -signkey server.key -in server.csr -out server.crt -extfile san.txt ``` 尚、上記は有効期限が 10 年間のサーバー証明書 `server.crt` を作成しています。 ## 確認 SAN が付加されているか確認します。 ```sh > openssl x509 -text -in sample.crt -noout ``` `X509v3 Subject Alternative Name:` にテキストファイルに記述した SAN が追加されていれば OK です。
## 参考 URL - https://kazuhira-r.hatenablog.com/entry/20180803/1533302929 - https://teratail.com/questions/77446 - https://tech.torico-corp.com/blog/chrome58-https-ssl-cert-san-error/
Read more
2020/04/24
OpenSSL で作成したサーバー証明書を IIS にインポートする
update
event_note
label
IIS
label
OpenSSL
OpenSSL で作成したサーバー証明書(自己署名証明書)を IIS にインポートします。
OpenSSL を使用したサーバー証明書(自己署名証明書)の作成方法については以下を参照してください。 - [OpenSSL を使って自己署名証明書を作成する](http://kuttsun.blogspot.jp/2018/04/openssl.html) また、自己署名証明書を使用するとセキュリティ的に全く意味がなくなりますが、それについてもここでは議論しません。 ## 環境 - IIS 7 - OpenSSL 1.0.2 ## pfx 形式への変換 OpenSSL で作成したサーバー証明書 (crt) を IIS にインポートするには、PKCS#12 (pfx) 形式に変換する必要があります。 ```sh > openssl pkcs12 -export -inkey server.key -in server.crt -out server.pfx ``` パスワードの設定を聞かれるので、入力すると、pfx ファイルが作成されます。 ## IIS へのインポート pfx ファイルを IIS へインポートします。 スタートメニューから IIS マネージャーを起動します。 コンピューター名を選択し、[サーバー証明書] をダブルクリックします。
[インポート] をクリックします。
作成した `server.pfx` を選択します。
### サイトへのバインド 証明書をインポートしたら、サイトにバインドします。 IIS マネージャーでサイトを選択し、[バインド] をクリックします。
[追加] をクリックします。
[種類] で `https` を選択し、[SSL 証明書] から先ほどインポートした証明書を選択します。
以上で完了です。 ブラウザから `https` でサイトにアクセスし、以下のような画面が表示されれば OK です。
※上記は Firefox の画面です。 ## クライアントへのインストール `server.pfx` をダブルクリックします。 ### Firefox の場合 私は普段 Firefox を使用していますが、Firefox の場合は上記の方法ではなく、個別に証明書をインポートする必要があります。 ## 参考 URL - https://knowledge.geotrust.com/jp/support/knowledge-base/index?vproductcat=G&vdomain=GEOTRUST_JP&page=content&id=SO23603&locale=ja_JP&redirected=true - http://d.hatena.ne.jp/ozuma/20130511/1368284304 - https://blog.freedom-man.com/openssl-command/
Read more
2020/04/20
image
NO IMAGE
submit ボタンにアイコンを表示する
update
event_note
label
HTML
フォーム送信する際にクリックする `submit` ボタンにアイコンを表示する方法です。 ここでは例として Font Awesome のアイコンを表示させてみます。
`submit` ボタンにアイコンを表示させるためには `input` 要素の `value` にアイコンのコードを Unicode でセットします。 アイコンのコードは Font Awesome のサイトで確認できます。 - https://fontawesome.com/icons?d=gallery コードをセットするときは、最初に `` を、最後に `;` を追加します。 例えば、Save アイコンのコード `f0c7` を指定する場合は以下のようになります。 ```html
``` `class` には使用するアイコンのスタイルに応じて適切なものを設定します。
Read more
2020/04/15
image
NO IMAGE
[C#] バイト配列のシリアライズ
update
event_note
label
C#
Newtonsoft.json でバイト配列をシリアライズすると、BASE64 にエンコードされて出力されてしまいます。
```cs var foo = new Foo { Data = new byte[] { 0x48, 0x49, 0x1d, 0x52, 0x53, 0x1d, 0x56, 0x57, 0x00 } }; var json = JsonConvert.SerializeObject(foo); Console.WriteLine(json); ``` ```cs public class Foo { public byte[] Data { get; set; } } ``` **出力結果** ```sh {"Data":"SEkdUlMdVlcA"} ``` 個人的には以下のように出力されることを期待していました。 ```cs {"Data":[48, 49, 1D, 52, 53, 1D, 56, 57, 00]} ``` ## 解決策 配列ではなくリストを使うと解決されるという記事を見て、上記のコードを変更したら期待した出力になりました。 しかし、他のケースではリストでも BASE64 で出力される場合があったりしたので、素直に `int` に変更しました。
## 参考 URL - https://www.newtonsoft.com/json/help/html/SerializationGuide.htm - https://stackoverflow.com/questions/55153522/why-does-newtonsoft-json-serializes-byte-as-base64-but-sbyte-not
Read more
2020/04/03
image
NO IMAGE
[ASP.NET Core] TempData を使っている場合のテストコードの書き方
update
event_note
label
ASP.NET Core
label
C#
Moq を使って TempData の Mock を作成してテストコードを書く方法です。
`TempDataDictionaryFactory` を使って `TempData` を作成して、Controller に渡します。 ```cs var tempDataDictionaryFactory = new TempDataDictionaryFactory(Mock.Of
()); var tempData = tempDataDictionaryFactory.GetTempData(new DefaultHttpContext()); var controller = new ShokiSetteiController(shiyouSetteiCreator, httpContextAccessor.Object, messageLocalizer.Object, wordLocalizer.Object) { TempData = tempData, }; ```
## 参考 URL - https://stackoverflow.com/questions/55914515/how-to-test-controller-method-that-use-tempdata-in-asp-mvc-core - https://stackoverflow.com/questions/52181767/mocking-a-tempdata-in-asp-net-core-in-mstest
Read more
新しい投稿
前の投稿
ホーム
Translate
Popular Posts
TortoiseGit でコミットメッセージを変更する
image
NO IMAGE
TortoiseGit でブランチ間の差分を見る
image
NO IMAGE
[ASP.NET Core] 前のページ(遷移元)の URL を取得する
image
NO IMAGE
外部 DLL を NuGet パッケージに含める方法
image
NO IMAGE
[C#] SonarQube で .NET アプリケーションのコード解析を行う
image
NO IMAGE
[ASP.NET Core] Form value count limit 1024 exceeded のエラーが発生した
image
NO IMAGE
マージ元ブランチとマージ先ブランチ
TortoiseGit でリモートリポジトリのタグを削除する
image
NO IMAGE
C# で GitHub からリリースバージョンを取得する
[Jenkins] エラー 1069: ログオンに失敗したため、サービスを開始できませんでした。
Labels
.NET Core
31
.NET Framework
17
.NET Standard
2
AdminLTE
1
Apache
3
AppVeyor
2
AsciiDoc
3
ASP.NET Core
55
Atom
4
AWS
2
AWS Cloud9
4
blockdiag
1
Blogger
10
Bootstrap
3
C/C++
6
C#
106
CentOS
3
Chrome
1
Chronograf
3
Codecov
1
CSS
1
Docker
28
DokuWiki
4
Doxygen
1
draw.io
1
Electron.NET
2
Entity Framework Core
9
Excel
2
FFmpeg
2
Firefox
5
Git
12
GitBook
4
GitBucket
7
GitHub
7
GitLab
30
Go
1
Google
1
Google Cloud Platform
1
Grafana
5
HTML
5
IIS
8
InfluxDB
6
JavaScript
7
Jenkins
7
Linux
25
Log4View
1
MahApps.Metro
3
MaterialDesignInXamlToolkit
1
MVC
1
MVVM
6
NLog
3
Node.js
3
npm
1
OpenSSL
3
ownCloud
2
Pine Script
1
PlantUML
5
PowerShell
7
Prism
2
Python
11
Razor
3
Redmine
30
remark.js
2
rocketchat
4
Ruby
3
SignalR
1
Socket.IO
1
SonarQube
5
Sphinx
10
SQL Server
5
SQLite
1
t
1
TestLink
2
Tomcat
2
TortoiseGit
10
TortoiseSVN
2
Trading View
1
Travis CI
1
Ubuntu
13
Visual Studio
39
Visual Studio Code
9
Vue.js
8
Windows
56
Windows 10
4
Windows ADK
1
Windows API
2
Windows Embedded
4
wkhtmltopdf
2
Word
3
WPF
12
WSL
1
Xamarin
1
xUnit
5
アプリケーション
1
デザインパターン
1
テスト
3
バッチファイル
2
ぴよ
3
プログラミング
3
ライセンス
1
ラベル
3
ラベル1
2
英語
2
雑記
1
書籍
1
数学
1
正規表現
1
Blog Archive
►
2022
(1)
►
2月
(1)
►
2021
(24)
►
5月
(7)
►
4月
(8)
►
3月
(2)
►
2月
(2)
►
1月
(5)
▼
2020
(60)
►
12月
(1)
►
11月
(3)
►
10月
(3)
►
9月
(3)
►
8月
(3)
►
7月
(7)
►
6月
(7)
►
5月
(2)
▼
4月
(6)
[C#] 文字列内の文字が全て同じかどうかをチェックする
OpenSSL で SAN 付きの自己署名証明書を作成する
OpenSSL で作成したサーバー証明書を IIS にインポートする
submit ボタンにアイコンを表示する
[C#] バイト配列のシリアライズ
[ASP.NET Core] TempData を使っている場合のテストコードの書き方
►
3月
(6)
►
2月
(7)
►
1月
(12)
►
2019
(92)
►
12月
(13)
►
11月
(9)
►
10月
(3)
►
9月
(2)
►
8月
(3)
►
7月
(5)
►
6月
(11)
►
5月
(6)
►
4月
(17)
►
3月
(9)
►
2月
(6)
►
1月
(8)
►
2018
(100)
►
12月
(1)
►
11月
(11)
►
10月
(8)
►
9月
(6)
►
8月
(10)
►
7月
(10)
►
6月
(8)
►
5月
(9)
►
4月
(8)
►
3月
(14)
►
2月
(4)
►
1月
(11)
►
2017
(117)
►
12月
(14)
►
11月
(20)
►
10月
(17)
►
9月
(19)
►
8月
(10)
►
7月
(8)
►
6月
(3)
►
5月
(6)
►
4月
(5)
►
3月
(2)
►
2月
(8)
►
1月
(5)
►
2016
(91)
►
12月
(5)
►
11月
(9)
►
10月
(11)
►
9月
(9)
►
8月
(6)
►
7月
(14)
►
6月
(14)
►
5月
(11)
►
4月
(10)
►
3月
(2)
►
2015
(23)
►
12月
(4)
►
11月
(2)
►
10月
(8)
►
9月
(8)
►
7月
(1)
►
2013
(3)
►
11月
(1)
►
9月
(1)
►
7月
(1)
►
2012
(2)
►
7月
(1)
►
6月
(1)
►
2011
(1)
►
9月
(1)
►
2009
(1)
►
7月
(1)
►
2008
(2)
►
11月
(1)
►
7月
(1)
►
2007
(3)
►
10月
(3)