Неверные данные о печати в Стимулсофт - PullRequest
0 голосов
/ 28 мая 2020

Я создал многопользовательское приложение с asp. net mvc. Каждый пользователь может войти в систему и увидеть свой счет, выставленный стимулсофт. Это нормально, когда все видят отчет, но если кто-нибудь попытается распечатать или экспортировать отчет одновременно, он увидит счет другого человека.

Вот сценарий:

1- User1 переходит на свою страницу и видит свой Счет-фактуру1 (ОК)

2- Пользователь2 переходит на свою страницу и видит свой Счет-фактуру2 (ОК)

3- Пользователь2 нажимает кнопку печати / экспорта в стимулсофт и видит Invoice2 на своей распечатанной / загруженной странице (OK)

4- Пользователь1 нажимает кнопку печати / экспорта вtimulsoft и видит Invoice2 на своей распечатанной / загруженной странице (Not OK)

Итак, я думаю, что данные User1 переопределяются пользователем User2 где-то на сервере (возможно, httpcontext). Что мне делать, чтобы этого не произошло? Видеть конфиденциальную информацию других людей опасно. Вот мой код:

public ActionResult PrintSnapshot()
    {

        string empID= Session["empID"].ToString();

        var invoice = new MRSRepository().GetInvoiceByEmployeeID(empID);

        StiReport report = new StiReport();
        report.Load(Server.MapPath("~/Report/PrintInvoice.mrt"));
        report.Compile();

        report["Title"] = "Your Invoice";
        report["empID"] = empID;
        report["..."] =  "...";

        report.Render();

        return StiMvcViewer.GetReportSnapshotResult(this.HttpContext, report);
    }


    public ActionResult ViewerEvent()
    {

        return StiMvcViewer.ViewerEventResult(this.HttpContext);
    }

    public ActionResult PrintResult()
    {
        return StiMvcViewer.PrintReportResult(this.HttpContext);
    }

    public FileResult ExportResult()
    {
        return StiMvcViewer.ExportReportResult(this.HttpContext);
    }

    public ActionResult Interaction()
    {
        return StiMvcViewer.InteractionResult(this.HttpContext);
    }
...