C#DPAPI必须声明一个正文,因为它没有标记为抽象

时间:2014-03-21 04:26:00

标签: c#

我不知道为什么我会收到以下错误,“必须声明一个正文,因为它没有标记为抽象,外部或部分”。 实际上,我遵循以下网站“http://www.overclock.net/t/1293731/windows-data-protection-api-c-and-c

中的指南
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Security.Cryptography;

namespace DataProtection 
{
    class Program
    {
        public static byte[] Protect(byte[] userData, byte[] optionalEntropy, DataProtectionScope scope);
        public static byte[] Unprotect(byte[] encryptedData, byte[] optionalEntropy, DataProtectionScope scope);

        static void Main(string[] args)
        {
            string plainText = "I have less headaches in the managed world!";
            byte[] plainTextBytes = Encoding.Unicode.GetBytes(plainText);

            /* Call the method. The return value is a byte array of ENCRYPTED data */
            byte[] encrypted = ProtectedData.Protect(
                    plainTextBytes,                         /* our byte array to be encrypted */
                    null,                                           /* we can pass additional entropy in the form of a byte array (optional) */
                    DataProtectionScope.CurrentUser /* can also pass DataProtectionScope.LocalMachine */
            );

            /* Here we might write out the bytes in "encypted" to disk */


        }
    }
}

2 个答案:

答案 0 :(得分:0)

如果Program不是抽象类(并且不应该是),则必须实现Protect和Unprotect。但是,您似乎没有使用它们,所以可能只是删除它们?

现在看来,这两种方法都是抽象原型。

请点击此处查看更好的示例:http://msdn.microsoft.com/en-us/library/system.security.cryptography.protecteddata.aspx

答案 1 :(得分:0)

除了杰夫的评论之外,您的其他代码看起来并不意味着您拥有自己的ProtectUnprotect方法,而是调用来自ProtectedData类的。如果是这种情况,则无需在类中声明这些方法。