请帮助我尝试为我正在开发的xamarin表单应用程序实现客户端身份验证。我已经遵循了每个教程,了解如何在使用azure移动服务时将Azure活动目录集成到xamarin中。在调用loginAsync时总是抛出错误。在使用天蓝色日志的进一步调查中,我发现错误来自easyauthmodule。请帮助,就像我说我已经按照这个问题的每一个教程,我已经在过去一周每天都在这上面了
请在下面找到我的代码
#if os(iOS) || os(tvOS)
import Foundation
#if !RX_NO_MODULE
import RxSwift
import RxCocoa
#endif
import UIKit
extension OneSlider {
public var rx_distance: ControlProperty<Int> {
return UIControl.valuePublic(
self,
getter: { slider in
slider.distanceRank
}, setter: { slider, value in
slider.distanceRank = value
}
)
}
}
extension UIControl {
static func valuePublic<T, ControlType: UIControl>(control: ControlType, getter: ControlType -> T, setter: (ControlType, T) -> ()) -> ControlProperty<T> {
let values: Observable<T> = Observable.deferred { [weak control] in
guard let existingSelf = control else {
return Observable.empty()
}
return existingSelf.rx_controlEvent([.AllEditingEvents, .ValueChanged])
.flatMap { _ in
return control.map { Observable.just(getter($0)) } ?? Observable.empty()
}
.startWith(getter(existingSelf))
}
return ControlProperty(values: values, valueSink: UIBindingObserver(UIElement: control) { control, value in
setter(control, value)
})
}
}
#endif
答案 0 :(得分:1)
EasyAuth与Azure移动服务不兼容。你确定你使用的是正确的服务名称吗?
确保您使用以下NuGet for Azure移动应用程序:https://www.nuget.org/packages/Microsoft.Azure.Mobile.Client/
EasyAuth仅适用于Azure App Service。您需要配置App Service身份验证/授权模块。假设您已经将ADAL集成到您的Xamarin应用程序并且拥有来自ADAL的访问令牌,那么您的代码非常接近。但是,我发现移动应用的AAD配置很复杂。所以我写了几篇关于它的博客文章。
以下是客户流程版:https://shellmonger.com/2016/04/06/30-days-of-zumo-v2-azure-mobile-apps-day-4-adal-integration/
两者都使用Cordova作为移动客户端,但服务的配置是相同的。客户详细信息(除了明显的语言差异)也是类似的。