C#

証明書ストアにインストールされている証明書を WCF の TLS over TCP で使う

証明書ストアにインストールされているサーバー証明書を使って、WCF で TLS over TCP を構成するサンプル。 using System; using System.Security.Cryptography.X509Certificates; using System.ServiceModel; namespace WcfCertStoreSample { class Program…

C# で証明書を証明書ストアにインストールする

.pfx ファイルとパスワードを指定して、証明書ストアにインストールするサンプル。 using System; using System.Security.Cryptography.X509Certificates; namespace InstallCertSample { class Program { static void Main(string[] args) { if (args.Lengt…

アクセストークンを URLクエリパラメーターでも渡せるようにする

アクセストークンを Authorize ヘッダーではなく、URL クエリパラメーターで渡したい。 認証では Microsoft.AspNetCore.Authentication.JwtBearer を使っていて、何か方法があるのではと調べてみたら、案外簡単に実現できた。 var builder = WebApplication.…

Container Insights で収集されたAKS のコンテナログを検索する

AKS で動かしている Windows コンテナ内では、一応アプリが標準出力にカスタムログを書き込んでいる。 AKS のクラスタを作成したら Container Insights が有効になっていたので、保存場所になっている Log Analytics ワークスペースを見てみたら、ContainerL…

Azure RBAC を使用した Azure AD Authentication を有効にした Azure Kubernetes Service のクラスタを C# で操作する

C# で KubernetesClient を使って AKS のクラスタを操作するとき、認証情報はローカルに保存されたものを使っていたけど、本番ではそうはいかない。 AKS では認可に Azure RBAC が使えるので、例えば Azure AD でアプリを登録し、Azure RBAC で AKS のクラス…

Container Insights が収集した AKS のコンテナのメトリックを取得

Azure SDK for .NET の Azure.Monitor.Query 使えば、Container Insights が収集した AKS のコンテナのメトリックを取得できた。 www.nuget.org LogsQueryClient で Log Analytics ワークスペースに対して Kusto クエリを実行。 using Azure.Identity; using…

C# で Azure SQL Server のファイアウォール規則を操作する

Azure.ResourceManager.Sql を使って、Azure SQL Server のファイアウォール規則を操作できた。 www.nuget.org using Azure; using Azure.Identity; using Azure.ResourceManager; using Azure.ResourceManager.Sql; const string SubscriptionId = "<サブス…

C# で Microsoft Azure のリソースのメトリック取得

Microsoft Azure のリソースのメトリックを取得したかった。Azure SQL Database のとか。 Azure SDK for .NET の Azure.Monitor.Query 使えば、任意のリソースのメトリックを取得できた。 www.nuget.org using Azure.Identity; using Azure.Monitor.Query; u…

Azure Kubernetes Service の Kubernetes クラスタを C# から操作する

はじめに Azure Kubernetes Service(AKS) をプログラムから操作する必要があり、 KubernetesClient を使えばリソースの作成や更新ができそうだったので試してみた。 www.nuget.org github.com 認証情報を取得 操作対象は AKS なので、まずは認証情報を取得し…

C# で Affine/Softmax レイヤの実装

C# で「ゼロから作るDeep Learning」に挑戦中。5 章も 5.6 節まで来た。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAmazon 今回も Affine レイヤと Softmax-with-Loss レイヤを C# で写経する…

C# で Azure 仮想ネットワークゲートウェイのポイント対サイトで使うルート証明書を追加する

Microsoft Azure 仮想ネットワークゲートウェイのポイント対サイトで使うルート証明書を、 C# で Azure SDK を使って登録してみた。 www.nuget.org 公開証明書データを渡すときに使う BinaryData が曲者だった。 公開証明書データの文字列中の改行文字を削除…

Numpy.NET で Sigmoid レイヤー

C# で「ゼロから作るDeep Learning」に挑戦中。現在地点は 5.5.2。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAmazon 今回は Sigmoid レイヤーを写経するだけ。 using Numpy; public class Si…

C# でPsPing もどき

Azure で運用している Web サービスに手元のマシンからアクセスできないとき、まず ping を試したいところだけど、Azure は ping を通さない。そのため TCP 版 ping とも言える PsPing を使うことになる。 PsPing っぽいことを C# のプログラムでも行ないた…

Numpy.NET で ReLU レイヤー

C# で「ゼロから作るDeep Learning」に挑戦中。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAmazon 今までは Numpy の .NET 移植版である NumSharp を使っていたけど、開発は停滞してるっぽい…

NumSharp で加算レイヤー

C# で「ゼロから作るDeep Learning」に挑戦する続き。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAmazon 今回は加算レイヤーを追加し、乗算レイヤーと組み合わせてみた。 using NumSharp; NDA…

NumSharp で乗算レイヤー

C# で「ゼロから作るDeep Learning」に挑戦する続きは 5 章に入った。 ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装作者:斎藤 康毅オライリージャパンAmazon NumSharp を使って、乗算レイヤを実装してみた。 using NumSharp; NDA…

C# で自己署名証明書を生成する

.NET 6 で試したら、標準ライブラリだけで自己署名証明書を生成できた。 using System.Security.Cryptography; using System.Security.Cryptography.X509Certificates; var ecdsa = ECDsa.Create(); var request = new CertificateRequest( subjectName: "cn…

C# で Azure 仮想マシンのプロパティを取得する

Azure ポータルの仮想マシンの概要ページに表示されているような情報を、C# で SDK 使って取得してみた。 www.nuget.org www.nuget.org といっても全部取得するのは調査に時間がかかるので、ひとまず必要なやつだけ。ズバッと1回の呼び出しで取得できなかっ…

C# でホスト名から IP アドレスを取得する

Dns クラスを使えばホスト名から IP アドレスを取得できた。だいぶ前に試したときは、遅過ぎて使いものにならなかった記憶があるけど、さて今回はどうか。 using System; using System.Diagnostics; using System.Net; using System.Threading.Tasks; namesp…

C# で VPN ゲートウェイのアドレスプールを変更する

Microsoft Azure の仮想ネットワークに VPN の P2S で繋ぐとき、クライアントのアドレスプールをあらかじめポータルで設定しておくけど、REST API や SDK でもアドレスプールを変更できる。 www.nuget.org ポータルではアドレスプールなのに対し、REST API …

C# で VPN ゲートウェイの P2S 用 VPN クライアントセットアップをダウンロードする

Microsoft Azure の仮想ネットワークに VPN の P2S で繋ぐとき、Azure VPN Client を使うことになる。Azure VPN Client はポータルでダウンロードすれば事足りるけど、REST API や SDK でもダウンロードできる。 www.nuget.org 実際には、Azure VPN Client …

C# でネットワークインタフェースに関連付けるネットワークセキュリティグループを変更する

ネットワークインタフェースに関連付けているネットワークセキュリティグループの付け替えも、Azure.ResourceManager.Network を使えばできた。 www.nuget.org using Azure; using Azure.Identity; using Azure.ResourceManager; using Azure.ResourceManage…

C# でネットワークセキュリティグループのセキュリティ規則を CRUD する

C# で Microsoft Azure のネットワークセキュリティグループの操作を行うのは、Azure.ResourceManager.Network を使えばできた。 www.nuget.org ネットワークセキュリティグループのセキュリティ規則を CRUD してみたサンプルは次の通り。 using Azure; usin…

C# でスナップショットからマネージドディスクを作成・削除

C# で Azure.ResourceManager.Compute を使って、スナップショットからマネージドディスクを作成できた。あと列挙・更新・削除も。 www.nuget.org 以下、.NET 6 でのサンプル。 using Azure; using Azure.Core; using Azure.Identity; using Azure.ResourceM…

C# で Microsoft Azure のマネージドディスクのスナップショットを CRUD する

C# で Azure.ResourceManager.Compute を使えば、マネージドディスクからスナップショットを作成・取得・更新・削除できた。 www.nuget.org using Azure; using Azure.Core; using Azure.Identity; using Azure.ResourceManager; using Azure.ResourceManage…

C# で Azure 仮想マシンのデータディスクを入れ替える

Azure.ResourceManager.Compute を使って、Azure 仮想マシンのデータディスクもアタッチやデタッチができる。 www.nuget.org OSディスクのときと違って、データディスクは ID の変更ができないので、データディスクのアタッチとでタッチを行うことで、データ…

C# で Azure 仮想マシンの OS ディスクをスワップする

Azure.ResourceManager.Compute を使って、Azure 仮想マシンの OS ディスクをスワップできた。 www.nuget.org using Azure; using Azure.Identity; using Azure.ResourceManager; using Azure.ResourceManager.Compute; using Azure.ResourceManager.Compute…

C# で Azure VM の停止・開始・再起動を行う

Azure.ResourceManager.Compute を使えば、C# で仮想マシンの停止・開始・再起動ができる。 www.nuget.org 認証には Azure.Identity を使う。 www.nuget.org アプリに組み込んで使うことを想定しているので、Azure AD でアプリを登録しておく。 Microsoft Az…

Microsoft Authentication Library for .NET でリフレッシュトークンを永続化する

Microsoft Authentication Library for .NET(MSAL.NET) は、リフレッシュトークンを内部でキャッシュしていて、それを使ってアクセストークンを再取得できる。 ただ、キャッシュはメモリ上にしかないので、そのままだとプロセス終了したら失われてしまう。次…

Microsoft Authentication Library for .NET でアクセストークンを再取得して Microsoft Graph を呼び出す

Azure.Identity でアクセストークンを再取得する方法を見つけることができなかったので、Azure.Identity が依存している Microsoft Authentication Library for .NET(MSAL.NET) を試してみた。 using System.Net.Http.Headers; using Microsoft.Graph; using…