private static void SetCertificatePermissions(
Opc.Ua.Security.SecuredApplication application,
CertificateIdentifier id,
IList<ApplicationAccessRule> accessRules,
bool replaceExisting)
{
if (id == null || accessRules == null || accessRules.Count == 0)
{
return;
}
try
{
using (ICertificateStore store = id.OpenStore())
{
if (store.SupportsCertificateAccessControl)
{
store.SetAccessRules(id.Thumbprint, accessRules, replaceExisting);
}
}
}
catch (Exception e)
{
Utils.Trace("Could not set permissions for certificate store: {0}. Error={1}", id, e.Message);
for (int jj = 0; jj < accessRules.Count; jj++)
{
ApplicationAccessRule rule = accessRules[jj];
Utils.Trace(
(int)Utils.TraceMasks.Error,
"IdentityName={0}, Right={1}, RuleType={2}",
rule.IdentityName,
rule.Right,
rule.RuleType);
}
}
}