ASP.Net Classic中的____doPostBack中的自定义授权标头

时间:2019-01-08 09:06:06

标签: c# asp.net authorization

我有一个ASP.Net clssic网络表单,该表单从Windows桌面应用程序(通过浏览器控件)调用以生成打印输出。打印输出需要一段时间,我决定在加载数据时显示gif,然后在完成后显示报告。这是代码的一部分:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        // At this point, Request.Headers["Authorization"] has certain value received from the caller
        var fetch = "__doPostBack('asyncCall', '1');";
        ScriptManager.RegisterStartupScript(someUpdatePanel, this.GetType(), "pageLoad", fetch, true);
    }
    else
    {
        // At this point, Request.Headers["Authorization"] no longer contains any value
        if (Request["__EVENTTARGET"] == "asyncCall" && Request["__EVENTARGUMENT"] == "1")
        DoSomething()
    }
}


private void Page_Init(object sender, EventArgs e)
{
    // GetUserFromAuthorizationToken checks credentials provided in  Request.Headers["Authorization"] 
    if (GetUserFromAuthorizationToken() <= 0)
    {
        throw new UnauthorizedAccessException("Invalid User Credentials");
    }
}

第一次执行Page_Load时,它会从调用方获取授权标头,但是从javascript(回发)中调用它时,它不再具有授权。

有没有办法保留回传的自动化标题?

0 个答案:

没有答案