Wednesday, December 29, 2010

Webya give unauthorized error

When we added webya to our site it prompt with authentication. When we cancelled authentication page appear without any problem.

After investigation we found webya try to access /pages. To ignore this problem we added HTTPModule to escape this authetication. Sample Code as below:

public class BadRequestHandler : IHttpModule
{
///


/// Don't let the response be cached by the browser. Set up the status code
/// and return.
///

public void ProcessRequest(HttpApplication context)
{
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
context.Response.Cache.SetNoStore();
context.Response.Cache.SetExpires(DateTime.MinValue);
if (context.Request.Url.AbsolutePath.ToLower().EndsWith("/pages/"))
ParseStatusCode(context, 200);
}

///


/// Actually set up the status code at this point, and return.
///

protected void ParseStatusCode(HttpContext context, int statusCode)
{
context.Response.StatusCode = 200;
context.Response.End();
}

public bool IsReusable
{
get { return true; }
}

public void Dispose()
{
}

public void Init(HttpApplication context)
{
context.BeginRequest += new EventHandler(context_BeginRequest);
}

void context_BeginRequest(object sender, EventArgs e)
{
//System.Web.HttpContext.Current.Response.Write("handler started");
System.Web.HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache);
System.Web.HttpContext.Current.Response.Cache.SetNoStore();
System.Web.HttpContext.Current.Response.Cache.SetExpires(DateTime.MinValue);
if (System.Web.HttpContext.Current.Request.Url.AbsolutePath.ToLower().EndsWith ("/pages/"))
{
ParseStatusCode(System.Web.HttpContext.Current, 200);
}
}
}

No comments: