我正在使用Response.Redirect将用户重定向到新页面,但我希望只有在查询字符串中有特定参数时才会显示该页面。否则,我想要显示HTTP 401身份验证错误页面。可以这样做吗?如果有,怎么样?如果没有,为什么不呢?
答案 0 :(得分:3)
在您的页面中,您可以重定向到IHttpHandler
,该public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("Authentication error");
context.Response.StatusCode = 401;
}
将输出您的身份验证错误页面的内容,并将HTTP状态代码设置为401。
{{1}}
MSDN topic for IHttpHandler作为一些链接,可以帮助您了解什么是HTTP处理程序以及如何实现它。最重要的是:
HTTP Handlers and HTTP Modules Overview
答案 1 :(得分:2)
以下内容返回401状态代码,您需要添加HTML以根据IIS的配置方式自行显示。
protected void Page_Load(object sender, EventArgs e)
{
if (String.IsNullOrEmpty(Request.QueryString["RedirectParam"]))
Response.StatusCode = 401;
else
Response.Redirect("redirectpage.html");
}
答案 2 :(得分:0)
我想我自己找到了答案,得到了Joao的一些帮助以及其他人提供的答案。
我只需要写下这个:
if (Request.Params[param] != nul)
{
...
}
else
{
Response.ContentType = "text/html";
Response.Write("Authentication error");
Response.StatusCode = 401;
Response.End();
}
简单! :)如果有任何潜在的问题,请告诉我!