IISエラー
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
http://siela.jugem.cc/?cid=9さんより引用
ASPの組込みオブジェクトであるRequestオブジェクトには、には定義済みの環境変数の値を取得できる「Request.ServerVariables」というメソッドがあります。
「Request.ServerVariables("LOGON_USER")」では、ドメインにログオンしているユーザ名を取得できるので、イントラネット環境ではログオンユーザを取得して処理を判別している場合も多いかと思います。
しかし、サーバによってはこの「Request.ServerVariables("LOGON_USER")」が取得できない場合があります。原因としては次のいずれかが考えられます。
・IISの設定で「匿名アクセスを許可する」が有効になっていない
・ドメインにログオンしていない
しかし、このどちらにも当てはまらないのに、値が取得できない場合が稀にあります。
次に示すのは値が取得できない場合に401エラーを返すコードですが、この処理を行うことにより「Request.ServerVariables("LOGON_USER")」を取得できるようになるケースが何件かありました。
If Request.ServerVariables("LOGON_USER") = "" Then
Response.Status = "401 Unauthorized"
End If
推測できる原因として「未認証のエラーを返そうと思ったらやっぱりログオンしていたので値を取得してきた」ということが考えられますが、確実ではありません。しかし取得できるようになったケースが何件かあったということで、どうしてもお困りの方は試してみてはいかがでしょうか。
ただし、当方では責任は持ちませんので、ご注意を。
何か情報を知っている方のコメントもお待ちしています。