首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NeVpnManager未提供VPN共享密钥

NeVpnManager未提供VPN共享密钥
EN

Stack Overflow用户
提问于 2016-03-12 22:21:42
回答 1查看 2.1K关注 0票数 1

嗨,我正在尝试创建IPSEC VPN连接并自动连接,但它给出了No VPN shared secret if错误,即使我定义了共享密钥。我的代码类似于下面的代码,它正在保存VPN配置,但没有连接。

我正在尝试用相同的参数从我的iPhone添加VPN配置,它正在连接。

代码语言:javascript
复制
[[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);
    }
EN

回答 1

Stack Overflow用户

发布于 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];

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35958778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档