嗨,我正在尝试创建IPSEC VPN连接并自动连接,但它给出了No VPN shared secret if错误,即使我定义了共享密钥。我的代码类似于下面的代码,它正在保存VPN配置,但没有连接。
我正在尝试用相同的参数从我的iPhone添加VPN配置,它正在连接。
[[NEVPNManager sharedManager] setEnabled:YES];
[[NEVPNManager sharedManager] loadFromPreferencesWithCompletionHandler: ^(NSError *error) {
NEVPNProtocolIPSec *p = [[NEVPNProtocolIPSec alloc] init];
p.serverAddress =@"server";
p.authenticationMethod = NEVPNIKEAuthenticationMethodSharedSecret;
p.useExtendedAuthentication = YES;
NSString *secret = @"secretCode";
NSData *secretData = [secret dataUsingEncoding:NSUTF8StringEncoding];
p.sharedSecretReference=secretData;
p.localIdentifier=@"identifier";
p.username=@"username";
p.passwordReference=[[SSKeychain passwordForService:@"service" account:@"passwordReference"] dataUsingEncoding:NSUTF8StringEncoding];
p.disconnectOnSleep = NO;
[NEVPNManager sharedManager].protocolConfiguration=p;
NSMutableArray *rules = [[NSMutableArray alloc] init];
NEOnDemandRuleConnect *connectRule = [NEOnDemandRuleConnect new];
[rules addObject:connectRule];
[[NEVPNManager sharedManager] setOnDemandRules:rules];
[[NEVPNManager sharedManager] setLocalizedDescription:@"vpn"];
[[NEVPNManager sharedManager] setEnabled:YES];
[[NEVPNManager sharedManager] saveToPreferencesWithCompletionHandler: ^(NSError *error) {
NSLog(@"Save VPN to preference complete");
if (error) {
NSLog(@"Save error: %@", error);
}
}];
NSError *startError;
[[NEVPNManager sharedManager].connection startVPNTunnelAndReturnError:&startError];
if(startError) {
NSLog(@"Start error: %@", startError.localizedDescription);
}发布于 2016-03-21 14:12:41
我也遇到了同样的错误,这个例子对我很有帮助,我认为你应该在这几点上提供正确有效的https://github.com/lexrus/VPNOn引用:p.passwordReference = [VPN user password from keychain];
p.sharedSecretReference = [VPN server shared secret from keychain];
https://stackoverflow.com/questions/35958778
复制相似问题