2016-05-12 4 views
0

Я хочу внедрить логин с Facebook в своем приложении для подключения к окну, когда появляется кнопка входа в систему с помощью Facebook, здесь введите свое имя пользователя и пароль, все хорошо, когда я хочу получить лексема, результатИсключительный результат проверки подлинности в Windows silverlight 8.1

WebAuthenticationResult myResult = await WebAuthenticationBroker.AuthenticateSilentlyAsync(startUri); 

Я получаю это исключение:

COMException был необработанным кодом пользователя

исключения типа 'System.Runtime.InteropServices.COMException' произошел в mscorlib.ni.dll, но не был обработан в коде пользователя

Дополнительная информация: Ошибка HRESULT E_FAIL была возвращена с вызова COM-компоненту.

Любое решение для решения этой проблемы?

+0

Позвольте мне посмотреть, пожалуйста, ваш полный код. –

ответ

1

Вместо WebAuthenticationBroker.AuthenticateSilentlyAsync(startUri) use WebAuthenticationBroker.AuthenticateAndContinue(requestUri, callbackUri) Затем добавьте событие Application_ContractActivated в App.xaml. Вы можете сделать это, открыв app.xaml и добавление ContractActivated как этот

<shell:PhoneApplicationService ContractActivated="Application_ContractActivated" />

Это должно добавить метод Application_ContractActivated в App.xaml.cs. В этом методе вы можете получить результат, как этот:

public WebAuthenticationBrokerContinuationEventArgs WABContinuationArgs { get; set; } 

     private void Application_ContractActivated(object sender, IActivatedEventArgs e) 
       { 
        var _WABContinuationArgs = e as WebAuthenticationBrokerContinuationEventArgs; 

        if (_WABContinuationArgs != null) 
        { 
         WABContinuationArgs = _WABContinuationArgs; 
         var result = WABContinuationArgs.WebAuthenticationResult; 
        } 
       } 

Примечание, что это решение для Windows Phone Silverlight 8.1, а не для Windows Phone 8.1. Для Windows Phone 8.1 это тот же принцип, но вы используете метод OnActivated вместо Application_ContractActivated.