使链接不可编辑asp.net c#Page

时间:2017-10-27 15:08:37

标签: c# asp.net security web

我有一个页面,有一个生成这样的链接的按钮。

  private string GenerateLINK(string NameID)
    {

        string NameID= ds.Tables[0].Rows[0]["FName"] + " " + ds.Tables[0].Rows[0]["LName"];

        string sQS = ID+ "|" + ClientName;

        var xCrypto = new CryptoServer();
        string Vector= null;
        string sEncrypted = null;

        xCrypto.Encrypt3DES(sQS, ref sEncrypted, ref Vector);

        string sURL = sEncrypted + "#######" + Vector;
        sURL = Server.UrlEncode(sURL);
        sURL = "https://www.Page.aspx?s=" + sURL;
        return sURL;
    }

然后将其发送给点击它并转到页面的用户。 现在的问题是我采取这样的链接和DCode它。

   private void DecryptQuerystring()
{
    var sQS = Request.QueryString["s"];
    sQS = Server.UrlDecode(sQS);

    var idelim = sQS.IndexOf("###X####", StringComparison.Ordinal);

    var sIv = sQS.Substring(idelim + 8);
    sQS = sQS.Substring(0, idelim);

    var xCrypto = new ICECrypto.CryptoServer();
    sQS = xCrypto.Decrypt3DES(sQS, sIv);

    string sID = sQS.Substring(0, sQS.IndexOf("|"));
    studentID = sID;
    Name = sQS.Substring(sQS.IndexOf("|") + 1); 
    Welcome.InnerText = "Welcome " + sQS.Substring(sQS.IndexOf("|") + 1);

}

问题是当用户到达那里并且如果他在链接中放入任何单词时它会打破显示服务器错误的整个页面。我希望用户不能编辑链接插入其中的任何内容。任何线索?提前谢谢!

1 个答案:

答案 0 :(得分:1)

这很有趣,但我回答了我自己的问题,也许其他人可以使用它。 所以,在我进行QueryString()的解密时,我放入了

这个词
Try {
    // Do the Decryption here
}
Catch(Exception ex) {
    // if any thing goes wrong in that Try it will hit here and then i will show error 404
}