2011-02-12 79 views
0

我有一個post方法,其中,我想傳遞一些參數,如student_id。 我能夠做到這一點通過使用隱藏的領域,但我不想使用隱藏的領域。 一些事情是這樣的:傳遞參數POST方法沒有隱藏字段asp.net

<form id="form1" action="post" src="https://mydomain.com?student_id=value"> 

請注意,我試圖隱藏從URL的信息。 我非常瞭解html,所以不用擔心語法。

任何人都可以幫助我嗎?

在此先感謝。

+1

也許如果你告訴我們爲什麼你認爲隱藏的領域不是合適的解決方案,我們可以制定其他想法。順便說一下,`?student_id = value`是混合POST和GET(非常沒有意義)。 – 2011-02-12 16:05:19

回答

0

的三種選擇,因爲我看到他們是:

  1. 將數據放入一個隱藏字段 - 也許是存儲在視圖狀態,如果你不希望它很容易地通過網頁源代碼可用。
  2. 將數據放入網址或數據的代理中,如果您不希望ID實際可見,則說是加密的slu that解密爲實際ID。
  3. 將數據放入cookie中,可能已加密。

在我能夠提出建議之前,我需要了解更多關於您的要求。你說你想避免前兩個,但是如果值被加密或代理(比如使用數據庫ID而不是學生ID),你是否可以使用它們。通常,我使用人工數據庫id(autogenerated integer)對其進行代理並將其直接放入URL中,但我將使用ASP.NET MVC而不是Webforms。

0

如果您擔心向客戶端顯示一些敏感數據,答案是避免將其完全發送給客戶端。

將您的服務器上的值存儲在數據存儲區或緩存中,並將密鑰傳遞給表單中的值。因此,例如:

<form id="form1" action="post" src="https://mydomain.com"> 
    <input type="hidden" name="student-cache-key" value="23154546"> 

,然後在表格張貼,你會看在你的表或緩存23154546檢索值...(僞代碼)

int studentId = cache.Get(post['student-cache-key']); 
// studentId now equals 5, or null etc 

無論機制你使用,你將不得不檢查商店中存在的價值,並處理它不存在的情況。