ASP で基本認証をする (unibon) http://www.geocities.co.jp/SiliconValley/4334/unibon/asp/basicauth.html <%@Language=VBScript%> <%Option Explicit%> <% ' ここに BASE64 の Function 一式を挿入します。 Function auth(ByVal httpauthorization, ByRef username, ByRef password) Const One = 1 If IsEmpty(httpauthorization) Then ' 基本認証のダイアログボックスでキャンセル ボタンが押された場合 username = Null password = Null auth = False Else ' 基本認証のダイアログボックスで OK ボタンが押された場合 Dim t t = Mid(s, 5 + 1 + One) Dim d d = decode64(t) Dim p p = Instr(One, d, ":") If p >= One Then username = Left(d, p - One) password = Mid(d, p + 1) auth = True Else username = Null password = Null auth = False End If End If End Function Dim s s = Request.ServerVariables("HTTP_AUTHORIZATION") Dim u Dim p Dim b b = auth(s, u, p) If b Then ' 基本認証のダイアログボックスで OK ボタンが押された場合 If u = "xxx" And p = "yyy" Then ' 入力されたユーザ名とパスワードが、登録のものと一致した場合 Call Response.Write("" & vbNewLine) Call Response.Write("username=" & u & ", password=" & p & "
" & vbNewLine) Call Response.Write("ようこそ。
" & vbNewLine) Call Response.Write("" & vbNewLine) Else ' 入力されたユーザ名とパスワードが、登録のものと一致しなかった場合。 Response.Status = "401 Unauthorized" ' 2001/06/10 認証をリトライするために追加。 Call Response.AddHeader("WWW-Authenticate", "BASIC realm=""hogehoge""") ' 2001/06/10 認証をリトライするために追加。 ' 入力を間違えるたびに毎回 response されるが、通常のブラウザでは、3回間違えたときにはじめてこの画面が目に見えるように表示される。 Call Response.Write("" & vbNewLine) Call Response.Write("username=" & u & ", password=" & p & "
" & vbNewLine) Call Response.Write("ユーザ名またはパスワードが違います
" & vbNewLine) Call Response.Write("" & vbNewLine) End If Else ' 初回のアクセスだった場合、または、基本認証のダイアログボックスでキャンセルボタンが押された場合 Response.Status = "401 Unauthorized" Call Response.AddHeader("WWW-Authenticate", "BASIC realm=""hogehoge""") Call Response.Write("" & vbNewLine) Call Response.Write("認証できません
" & vbNewLine) Call Response.Write("" & vbNewLine) End If %>