У меня есть веб-форма ASP.Net clssic, которая вызывается из приложения Windows Desktop (через элемент управления браузера) для создания распечатки. Для создания распечатки требуется некоторое время, чтобы я решил отобразить 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 (обратной передачи), он больше не несет авторизацию.
Есть ли способ сохранить заголовок авторизации для обратной передачи?