ClassicASP初心者です。
ClassicASPの環境でクライアント証明書の情報を取得する方法を調べて実装したことについて、備忘として書きたいと思います。
目次
参考
HttpRequest.ClientCertificate プロパティ
背景
IDとパスワードを入力する認証から、クライアント証明書を使った認証へ改修する環境でどうやって、クライアント証明書の情報を取得するかが知りませんでした。
調べてみると、参考のリンクにあるHttpRequest.ClientCertificateから情報を取得できるとのことでした。
クライアント証明書にある特定の文字列を抜き出しユーザーを判別する機能をClassicASPで開発しました。
サンプル
クライアント証明書の特定の文字列を抜き出すサンプルコード
例えば、開始文字列「START」から終了文字列「END」までの証明書にある情報を抜き出すとして開発しています。
sample.asp
<%
Dim strTarget
Dim strStartSearch
Dim strEndSearch
Dim intStartIndex
Dim intEndIndex
Dim strClientCert
Dim clientCert
strStartSearch = "START"
strEndSearch = "END"
clientCert = Request.ClientCertificate
'クライアント証明書を取得できているか
If Len(clientCert) > 0 Then
' 証明書を文字列として認識するように修正
strClientCert = clientCert + ""
' 開始位置を検索する
intStartIndex = InStr(strClientCert, strStartSearch) + Len(strStartSearch)
' 終了位置を検索する
intEndIndex = InStr(strClientCert, strEndSearch)
' 特定の文字列を抜き出す
strTarget = Mid(strClientCert, intStartIndex, intEndIndex - intStartIndex)
End If
' 出力
Response.Write strTarget
%>
まとめ
新しく開発する言語は、変数宣言や、関数の使い方を調べながら進めていくことになり、時間がかかりますが、
後で見返したときに何がしたかったのかを思い返せるようにコメントしながら引き続き開発を進めたいと思いました。