c# DPAPI必须声明一个主体,因为它没有被标记为抽象
本文关键字:因为 抽象 记为 主体 一个 DPAPI 声明 | 更新日期: 2023-09-27 17:51:18
我不知道为什么我得到以下错误,"必须声明一个机构,因为它没有标记抽象,外部或部分"。我实际上遵循以下网站的指南'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 */
}
}
}
如果Program不是抽象类(也不应该是),则必须实现Protect和Unprotect。然而,看起来你并没有使用它们,所以也许只是删除它们?
事实上,这两个方法是抽象原型。
在这里看到一个更好的例子:http://msdn.microsoft.com/en-us/library/system.security.cryptography.protecteddata.aspx
除了Jeff的注释之外,从您的代码的其余部分来看,看起来您并不打算拥有自己的Protect
和Unprotect
方法,而是调用ProtectedData
类中的方法。如果是这种情况,您不需要在类中为这些方法声明任何内容。