簡體   English   中英

如何在沒有隱藏字段的情況下將JavaScript變量發送到C#(背后有ASP網絡代碼)

[英]How to send JavaScript variable to (asp net code behind) c# without hidden field

如何在不使用<input type="hidden" />字段的情況下將JavaScript變量發送到C#(后面的ASP.NET代碼)? 在瀏覽器檢查器中, hidden字段及其值是可見且可編輯的。

您可以使用AJAX方法

一個很好的教程: http : //www.brainbell.com/tutorials/ASP/A_Web_Service_In_ASP.NET.html

例如,后面的代碼:

        [WebMethod]
        public static bool UpdateLocation(string lat)
        {
            try
            {
                //Your code
            }
            catch (Exception ex)
            {                   
                throw;
            }
        }

示例JavaScript代碼:

         $.ajax({
                        type: "POST",
                        url: "/MyPage.aspx/UpdateLocation",
                        data: "{lat:'1313.23232'}",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json"
                });

如果我從會話中的js保存變量,然后在會話中的asp.net中打開此變量,用戶仍然可以查看和更改變量嗎?

兩件事情:

首先,就像@AnibalDíaz所說的那樣,您可能應該通過AJAX而非表格形式執行此操作。 如果您不想在頁面上使用<input type="hidden" />標記。

第二,但是,如果您擔心用戶可以看到該字段的值,那么您會遇到更大的問題。 在當前的瀏覽器檢查器中,通常有一個“網絡”選項卡,您可以在其中查看頁面中的所有HTTP請求。 在HTML中尋找這些數據的大多數人也會知道,他們可以通過“網絡”選項卡輕松地查看HTTP請求本身中的數據,實際上,他們可以先去那里而不是檢查表單。 如果您擔心他們更改數據,許多瀏覽器的網絡工具還允許您修改請求並再次發送,因此,他們也可以輕松地為該字段發送另一個具有不同值的請求。

有多種方法可以使此操作變得更加困難,但最終, 網頁上的任何內容都不是私有的 向用戶發送網頁時,也向他們發送了所有JavaScript代碼。 惡意用戶始終可以修改該代碼並更改其行為。 這意味着您永遠不要依賴瀏覽器來確保安全 如果您不希望用戶看到或修改某些數據, 請不要將該數據發送給用戶

您可能需要重新考慮一下體系結構。 我對C#或ASP.NET不太了解,但是如果您可以在服務器上維護每個用戶的會話,並在服務器上存儲與該用戶相關聯的數據,那是您的最佳選擇。 如果您的數據存儲在服務器上並且從未發送到瀏覽器,那么用戶將無法獲取它們。

暫無
暫無

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

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