Basic認証の、さらに自力だなんて最後の手段だと思うけどメモ…。とりあえず参考にしたサイト
やったこと
Web.configに以下の記述を追加。
<authentication mode="None" /><authorization><deny users="?"/></authorization>
そして、Global.asaxのAuthenticateRequestで以下のような処理をします。
protectedvoid Application_AuthenticateRequest() { if (string.IsNullOrEmpty(this.Request.Headers["Authorization"])) { // Basic認証だよ!っていう情報を返しておくthis.Response.StatusCode = 401; this.Response.SubStatusCode = 1; this.Response.AppendHeader("WWW-Authenticate", "Basic"); this.CompleteRequest(); return; } // とりあえず、なんか認証情報きてたら認証OKってことにしとく。// 本当は参考URLの方法でユーザーIDとパスワードをとってきちんと認証しようね! Debug.WriteLine(this.Request.Headers["Authorization"]); HttpContext.Current.User = new GenericPrincipal(new GenericIdentity("user"), new[] { "Users" }); }
使いたい製品が基本認証以外をサポートしてるんなら、ほかの方法にするのがいいんだけどね…。