従来のASP.NETアプリケーションの認証チケットを外部のアプリケーションで復号する

これでできる。 AspNetCore.LegacyAuthCookieCompat

従来のASP.NETでは認証クッキーには認証チケットSystem.Web.Security.FormsAuthenticationTicketシリアライズして暗号化したものが入っている。復号は、System.Web.Security.FormsAuthenticationクラスのDecryptメソッドでする。

System.Web.Security.FormsAuthenticationSystem.Web.dllにある。 System.Web.dllは、.NET Frameworkにあり、.NET Coreには含まれない。AWS Lambdaなどの.NET Frameworkが無い環境では使えない。

自分に必要な部分だけを小さくまとめてみた。 複合化とデシリアライズするだけなので、チケットのsliding expirationなどには関知しない。

  • 方式が固定のときIVのサイズも固定なのだったら不要なコードがあるけどまだよくわからなかった
  • Read7BitEncodedIntのところがなぜそうなっているのかわからなかった
  • 切り貼りして少し体裁を変えたコードをPublic Gistとして公開してよいのかが不安