Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在c#应用程序中保护服务帐户?_C#_Security_Active Directory - Fatal编程技术网

如何在c#应用程序中保护服务帐户?

如何在c#应用程序中保护服务帐户?,c#,security,active-directory,C#,Security,Active Directory,我为我的申请设立了一个服务账户,在我的申请工作中,我实际上是: private string SA_myapp = "service_account_myapp@domain.com"; private string SA_myapp_pass = "5tr0ngP455w0rd"; private DirectoryEntry LDAP = new DirectoryEntry("LDAP://" + domainName, SA_myapp, SA_myapp_pass); 这也是工作,但

我为我的申请设立了一个服务账户,在我的申请工作中,我实际上是:

private string SA_myapp = "service_account_myapp@domain.com";
private string SA_myapp_pass = "5tr0ngP455w0rd";
private DirectoryEntry LDAP = new DirectoryEntry("LDAP://" + domainName, SA_myapp, SA_myapp_pass);
这也是工作,但我相信这不是一个好办法

如何在我的应用程序中以更安全的方式使用我的服务帐户


PS:C#app、Windows、active directory帐户

您可以使用DPAPI保护密码并将其存储在注册表中,因此基本上,当服务首次加载自身时,它会从一个注册表项读取值(比如说pass#clear),然后在启动时检查注册表项pass#clear中的值,如果找到一个值,它将读取该值并通过调用

ProtectedData.Protect( pass_clear , s_aditionalEntropy, DataProtectionScope.CurrentUser );
然后,加密的字节[]可以转换为base64字符串并存储在另一个注册表项pass_secure中,应用程序/服务可以在需要将自身绑定到LDAP端口时使用该注册表项

当前用户的数据保护范围只允许服务帐户解密密码,框架为您进行密钥管理