我不知道为什么我会收到以下错误,“必须声明一个正文,因为它没有标记为抽象,外部或部分”。 实际上,我遵循以下网站“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 */
}
}
}
答案 0 :(得分:0)
如果Program不是抽象类(并且不应该是),则必须实现Protect和Unprotect。但是,您似乎没有使用它们,所以可能只是删除它们?
现在看来,这两种方法都是抽象原型。
请点击此处查看更好的示例:http://msdn.microsoft.com/en-us/library/system.security.cryptography.protecteddata.aspx
答案 1 :(得分:0)
除了杰夫的评论之外,您的其他代码看起来并不意味着您拥有自己的Protect
和Unprotect
方法,而是调用来自ProtectedData
类的。如果是这种情况,则无需在类中声明这些方法。