asp.net
  • webforms
  • 2014-11-23 75 views 1 likes 
    1

    我使用的是asp:HyperLink,因爲它使我能夠在新選項卡中打開鏈接頁面。 一個問題,我用這種控制面臨的是,當我需要傳遞的信息是保密的,我不想做這樣的事情:asp:超鏈接不通過查詢字符串

    <asp:HyperLink ID="LinkButton2" runat="server" Target="_blank" NavigateUrl= '<%# String.Format("SPage.aspx?val={0}", Eval("Uid")) %>'>View/Print</asp:HyperLink> 
    

    換句話說,我不希望傳遞的信息,從而它可以被用戶查看。有沒有其他解決方法。是否有任何其他控件可以很容易地打開另一個頁面上的鏈接,但卻讓我有能力在沒有查詢字符串的情況下傳遞信息(因爲這是可查看的)。我主要關心的是我在查詢字符串中傳遞CONFIDENTIAL信息,因此不想讓用戶查看它。

    +0

    你不能讓用戶發送一個請求,而不讓用戶看到該請求。 – SLaks 2014-11-23 17:04:48

    +0

    你可以嘗試在發送給客戶端之前對Uid進行加密,當回發完成後將其解密 – 2014-11-23 17:06:35

    +0

    @GiorgosBetsos編碼不是解密 – 2014-11-23 17:07:02

    回答

    1

    什麼你可以做到:

    從服務器端:

    LinkButton2.NavigateUrl="~/SPage.aspx?uid=" +Uri.EscapeDataString(Utils.Encrypt(Uid)); //Utils.encrypt is your encryption function 
    

    用戶將看到它,但他們不會明白從中一無所獲。

    後,你的網頁上:

    var myValue = Utils.Descrypt(Uri.UnescapeDataString(request["uid"]));

    +0

    謝謝。如何讀取它的值 – 2014-11-23 17:10:17

    +0

    您可能知道Utils.Encrypt的命名空間是什麼。我無法得到它。我嘗試過:System.Security.Cryptography; – 2014-11-23 17:28:52

    +0

    它只是一個虛構的發明圖書館名稱。無論你喜歡,你都可以加密它。然而,uri庫是一個真正的網絡庫。隨意提出更多問題 – 2014-11-23 21:23:26

    相關問題