【问题标题】:how to set Authentication setting data? VPN Mac OS Programatically如何设置认证设置数据? VPN Macos 以编程方式
【发布时间】:2015-09-08 20:21:52
【问题描述】:

我正在使用这个https://github.com/halo/macosvpn。代码成功运行并创建新网络,但未显示身份验证设置数据,如密码,例如共享密钥。

- (CFDictionaryRef) L2TPPPPConfig {
CFStringRef keys[4] = { NULL, NULL, NULL, NULL };
CFStringRef vals[4] = { NULL, NULL, NULL, NULL };
CFIndex count = 0;

keys[count] = kSCPropNetPPPCommRemoteAddress;
vals[count++] = (__bridge CFStringRef)self.endpoint;

keys[count] = kSCPropNetPPPAuthName;
vals[count++] = (__bridge CFStringRef)self.username;

keys[count] = kSCPropNetPPPAuthPassword;
vals[count++] = (__bridge CFStringRef)self.serviceID;

keys[count] = kSCPropNetPPPAuthPasswordEncryption;
vals[count++] = kSCValNetPPPAuthPasswordEncryptionKeychain;

return CFDictionaryCreate(NULL, (const void **)&keys, (const void **)&vals, count, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks);

此外,服务器地址和帐户名称设置成功。我

【问题讨论】:

  • 您找到问题的解决方案了吗?我也卡在这里了。

标签: objective-c xcode6 osx-yosemite vpn system-configuration


【解决方案1】:

这两行看起来很可疑:

keys[count] = kSCPropNetPPPAuthPassword;
vals[count++] = (__bridge CFStringRef)self.serviceID;

第二行不应该是:“self.password”吗?

serviceID 与密码完全不同。

【讨论】:

  • 感谢您的回复,嗯,我知道,但实际上,当您按照示例进行操作时,您就会明白为什么 serviceID 会通过。在示例中,您将看到配置对象传递给 Keychain Items,主要问题是当我们应用 'keys[count] = kSCPropNetPPPAuthPasswordEncryption; vals[count++] = kSCValNetPPPAuthPasswordEncryptionKeychain; ' 然后我们的密码不显示。
  • 您所指的示例在哪里(是否在 github.com/halo/macosvpn 项目中的某处)?
  • 是的,我正在使用他的项目类。 VPNServiceConfig.m 你会看到所有的配置设置。我修改代码并从应用程序调用。
猜你喜欢
  • 1970-01-01
  • 2013-12-23
  • 2015-05-15
  • 2011-10-24
  • 2012-06-05
  • 2015-01-06
  • 2021-08-06
  • 2011-03-10
  • 1970-01-01
相关资源
最近更新 更多