0

あるセッションで生成されたチャートに別のセッションでアクセスする必要があるという要件があります。

説明すると、プロセス A は、画像 URL /ChartImg.axd?i=chart_0_0.png&g=a40f233f40fb4995b737d284f83ab1b7 を含むチャートを含む HTML を生成します。

deleteAfterServicing=false と dir=c:\ があり、c:\ を見ると chart_0_0.png があります。

ここで、プロセス B (したがって、独自のセッションで実行中) が HTML ファイルを開き、チャート 404 を開きます。これは、イメージ ハンドラーが作成されたセッションからのチャートへのアクセスのみを許可するためです。

この動作を無効にする方法はありますか?

あなたのお返事をお待ちしてます

カール

4

1 に答える 1

0

わかりましたので、次のようにして解決しました:

    Public Overrides Sub RenderControl(writer As System.Web.UI.HtmlTextWriter)

        If Me.RenderToFile Then
            'Save it to a file first
            Me.SaveImage(HttpContext.Current.Server.MapPath(RenderToFileLocation),
                         ChartImageFormat.Png)
            'Return the image urn
            writer.Write("<img src=""" & Url.Content(ConfigurationManager.AppSettings("ChartFilePath")) & "?c=" & Url.Content(RenderToFileLocation) & """ />")
        Else
            MyBase.RenderControl(writer)
        End If
    End Sub

次に、そこから、ファイルを返し、それを削除する単純な .net MVC ハンドラーを作成しました Function Index(ByVal c As String) As ActionResult

        Dim dir = Server.MapPath(ConfigurationManager.AppSettings("ChartFilePath"))
        Dim filepath = System.IO.Path.Combine(dir, c)
        Index = MyBase.File(filepath, "image/png")

        'Delete the file
        Try
            IO.File.Delete(filepath)
        Catch ex As Exception

        End Try
    End Function
于 2012-09-03T09:40:17.410 に答える