从jquery函数传递加密的ID

时间:2012-02-20 19:25:03

标签: jquery asp.net-mvc asp.net-mvc-3 razor

在MVC中, 我使用过jquery模板。它返回ID,我已经设置了一个ID传递的链接。但我想使用服务器端功能加密该ID。

{#template PAYMENTLINK}
                    <li class="scale-list-1">
                        <a href="javascript:;" onclick="PaymentUrl({$T.PackageId});">Pay</a>
                    </li>
                {#/template PAYMENTLINK}

1 个答案:

答案 0 :(得分:0)

加密和解密我们在解决方案中使用的方法。您需要的只是id.ToString(),cause方法获取字符串作为输入

        public string Decrypt(string inputValue)
        {
            byte[] inputEquivalent = Convert.FromBase64String(inputValue.Replace(" ", "+"));

            using (var memoryStream = new MemoryStream())
            {
                using (
                    var cryptoStream = new CryptoStream(memoryStream, this.CryptoProvider.CreateDecryptor(), CryptoStreamMode.Write))
                {
                    cryptoStream.Write(inputEquivalent, 0, inputEquivalent.Length);
                    cryptoStream.FlushFinalBlock();

                    cryptoStream.Close();
                    return new UTF8Encoding().GetString(memoryStream.ToArray());
                }
            }
        }

        /// <summary>
        /// Gets the encrypted text.
        /// </summary>
        /// <param name="inputValue">The input value.</param>
        /// <returns>Encrypted string</returns>
        public string Encrypt(string inputValue)
        {
            using (var memoryStream = new MemoryStream())
            {
                using (
                    var cryptoStream = new CryptoStream(memoryStream, this.CryptoProvider.CreateEncryptor(), CryptoStreamMode.Write))
                {
                    byte[] toEncrypt = new UTF8Encoding().GetBytes(inputValue);
                    cryptoStream.Write(toEncrypt, 0, toEncrypt.Length);
                    cryptoStream.FlushFinalBlock();

                    byte[] ret = memoryStream.ToArray();

                    cryptoStream.Close();
                    memoryStream.Close();

                    return Convert.ToBase64String(ret);
                }
            }
        }