0
私はページの中にこのようなリンクを生成するボタンがあります。リンクを編集できないようにするasp.net c#Page
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);
}
ユーザーが取得するときに問題があると、彼はリンクに任意の単語を入れた場合には、サーバーエラーを示すページ全体を壊します。私は、リンクを編集することができないようにする必要があります。どんな手掛かり?前もって感謝します!
を置きます。入力が悪いためにデコードに失敗した場合は、正常に処理して404をユーザーに返す必要があります。 – Riv
Riv私は、404コードがインターリンクされたリンクがあなたのウェブサイトのページでない場合にのみ機能する点ではないと思います。私のリンクはその値が有効です。ユーザーはそのクエリ文字列内で、壊れている有効な暗号化された値ではないものを入力します。お返事をありがとうございます –