簡體   English   中英

通過不同的ASP會話在c#中維護變量

[英]maintaining a variable in c# through different ASP sessions

您好我有一個會話ID變量我正在從Oracle包傳遞到一個asp頁面。 我想要做的是堅持該變量並通過不同的調用將其傳遞回Oracle。 我認為這應該很容易,但我失去了變量值。

解決方案中的其他所有工作都完美無缺。 這只是一個小小的補充。

我不太確定在這個問題上有多少信息太多或太少但基本上我有一個連接類,用不同的方法在Oracle中調用不同的proc。 通過按下asp頁面上的兩個按鈕之一來調用每個按鈕。

一種方法(按鈕單擊)將傳遞會話ID(以及存在於永久Oracle表中的游標結果)。

然后,asp頁面顯示光標結果。

第二種方法(按鈕單擊)然后調用Oracle中的proc,以根據會話ID將該表中存在的任何內容傳遞給另一個表。

為了確保傳遞正確的內容,我需要asp頁面來保持會話ID(我得到了這個),然后在不同的調用中將它傳遞回Oracle。

在我們的聲明中

private string outSessionID;

    public string OutSessionID
    {
        get { return outSessionID; }
        set { outSessionID = value; }
    }

設置參數的連接方法的一部分

addDbParameter(ref cmd, "outSession_ID", DbType.String, ParameterDirection.Output, null);

addDbParameter(ref cmd, "rc1", DbType.Object, ParameterDirection.Output, null);

 outSessionID = cmd.OutParameter<String>("outSession_ID");

我們有第二種方法

addDbParameter(ref cmd, "inSession_ID", DbType.String, ParameterDirection.Input, OutSessionID);

我是ASP的新手,所以對於為什么這些信息丟失的任何見解都表示贊賞。 我認為它與回發是一個新的會話或某事有關,但我不是很確定。

我會樂意用更多的代碼進行推斷,但不想提供任何不必要的東西。

謝謝。

最后我添加了一個小方法,在aspx.cs中收集了sessionId,然后在回發后調用該方法。 嘗試將pre-init中的值設置為page_load方法時發生了所有問題。 通過在單擊事件后調用單獨的方法,我能夠成功保存並調用sessionid。

感謝您的回復,他們非常樂於助人。

如果該信息不易出現安全問題,一種方法是在asp.net頁面上有一個隱藏字段。 注意:用戶可以查看頁面的來源並查看隱藏字段的內容

<as:HiddenField runat="server" ID="MySessionID" />

獲得sessionId后,您可以存儲它

MySessionID.Value = outSessionID;

並在以后使用它

outSessionID = MySessionID.Value;

這是另一個技巧

public string OutSessionID
{
    get { return ViewState["outSessionID"].ToString(); }
    set { ViewState["outSessionID"] = value; }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM