我阅读了这两篇文章1. here和2. here,以了解在服务器上的API使用基于声明的自定义授权时,如何对Azure移动应用程序执行身份验证的最佳方式以及Xamarin客户端调用它是使用MobileServiceClient
框架。我无法确定这些链接中的哪两个例子是更好的方法。使用Xamarin的Azure移动应用程序身份验证
在第一个链接中,似乎没有像第二个链接那样依赖特定于平台的代码,这意味着我不需要在Driod或IOS或Windows项目中编写任何代码,并且可以(我是否在这里?) 另外,第一个链接似乎不需要像第二个链接那样的提供者,因为我正在调用对Url的直接服务调用。另一方面,第二个环节似乎只支持Facebook, Twitter, MicrosoftAccount, Google and WindowsAzureActiveDirectory
。强制MobileServiceAuthenticationProvider
参数似乎没有针对基于用户表的SQL Server提供自定义验证。我不确定这部分,并且找不到其他文档。
如果LoginAsync
不提供自定义验证,那么它明确表示我需要遵循InvokeApiAsync
路线。如果它提供了它,那么问题是:我应该像第二个链接那样在每个目标项目中编写特定于平台的(Droid/IOS/windows)代码,还是应该处理类库中的所有服务调用示例显示在第一个链接?换句话说,我应该去LoginAsync
或InvokeApiAsync
?哪两个是推荐的方式?
你能推荐覆盖两种登录类型的任何模式吗?我目前正在尝试将所有身份验证抽象到单独的类库,但遇到麻烦,因为我需要在基本的可移植库类中定义一个'Auth'接口,该接口从每个目标项目中抽取该接口的设备特定实现.Droid/.IOS /等)现在我的自定义身份验证单独存放在该类库中,而其他Azure提供程序相关的登录代码则分布在解决方案的其余部分。 – user20358
我不得不放弃用于验证的类库,并将该代码放入基本的可移植项目本身。我不确定这是否是好设计。 – user20358
我将我的ILoginProvider接口(它是平台特定的代码实现的基接口)放在基类中 - 不需要单独的PCL。几乎所有我写的代码都在PCL中。 –