- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
if (!authorized)
{
// No, "I'm a teapot" is not what we really want, but the BuildMaster security module will
// replace it with a 401 (which we actually want)
context.Response.StatusCode = 418;
context.Response.Write("Not authorized");
context.Response.AddHeader("WWW-Authenticate", "Basic realm=\"BuildMaster URL Trigger\"");
context.ApplicationInstance.CompleteRequest();
return;
}
...
context.EndRequest += (s,e) =>
{
HttpApplication app = (HttpApplication)s;
if (app.Context.Response.StatusCode == 418)
app.Context.Response.StatusCode = 401;
}
http://blog.inedo.com/2010/10/12/http-418-im-a-teapot-finally-a-%E2%80%9Clegitimate%E2%80%9D-use/
Костыль для обхода "шибко умного" поведения ASP.NET Forms Authentication, который меняет код 401 на 302-перенаправление на форму логина. А разработчику нужен именно 401.
TauSigma 04.07.2013 16:38 # +2
http://i1220.photobucket.com/albums/dd445/pimpamlacasitos/obama-not-bad.jpg
someone 04.07.2013 17:21 # 0
TauSigma 04.07.2013 17:38 # +1
Это в случае, если разработчик решит, скажем, ловить события завершения генерации всех классов наследующих IHttpHandler или IHttpModule.
Но есть и более прямолинейные варианты, которые пишут сразу в исходящий поток.
guest 04.07.2013 23:36 # 0