我遵循以下文檔中的步驟http://azure.microsoft.com/en-us/documentation/articles/mobile-services-dotnet-backend-get-started-custom-authentication/ 並構建了我的.NET後端 - 我已經能夠使用移動服務的新CustomRegistration和CustomLogin函數 各自的api頁面localhost:<portNumber>/help/Api/POST-api-CustomLogin
處的「試用」按鈕。 ./CustomRegistration
。我已經發布了這些channges到我的天藍色移動服務的服務。Android客戶端自定義登錄Azure移動服務(.NET後端)
我然後嘗試使用我在Android Studio中構建的Android應用程序連接到該服務。我對Android非常陌生,因此我很難讓我的應用使用我的移動服務提供的CustomLogin 。下面爲Android APP
在Java/com.example.howzit文件夾的代碼:
LoginResult.java
package com.example.howzit;
import com.google.gson.annotations.SerializedName;
public class LoginResult {
public String AuthenticationToken;
//
// Summary:
// Gets or sets the Microsoft.WindowsAzure.Mobile.Service.Security.LoginResultUser
// logged in.
public LoginResultUser User;
}
LoginResultUser.java
package com.example.howzit;
import com.google.gson.annotations.SerializedName;
public class LoginResultUser {
public String UserId ;
}
LoginRequest.java
package com.example.howzit;
public class LoginRequest
{
public String username ;
public String password ;
}
在TodoActivity類我有這樣的:
mClient = new MobileServiceClient(
"https://mysite.azure-mobile.net/",
"APIKEY",
this).withFilter(new ProgressFilter())
.withFilter(new RefreshTokenCacheFilter());
LoginRequest loginUser = new LoginRequest();
loginUser.username = "theUserName";
loginUser.password = "thePassword";
mClient.invokeApi("CustomLogin",loginUser,LoginResult.class, new ApiOperationCallback<LoginResult>() {
@Override
public void onCompleted(LoginResult result,Exception error, ServiceFilterResponse response){
if (error != null) {
createAndShowDialog(error, "Error");
}
else {
createAndShowDialog(result.User.UserId, "User");
}
}
});
我已經調試這一點,它基本上打invokeApi呼叫並繼續加載應用程序從未擊中onCompleted例程的其餘部分 ......在Android Studio中我有訪問LogCat,但沒有任何信息可以告訴我一個錯誤。我真的無法深究這一點。我已成功實施了Google登錄提供程序以及Window Azure 提供程序,但無法使用我自己的自定義登錄名。任何幫助將不勝感激。
更多信息:我已經在VS2013上設置了遠程調試,如果我刪除身份驗證和調試,使用android應用程序時會觸發斷點,但使用身份驗證時,控制器中的CustomLogin Post永遠不會被擊中。
我已經完成了與Windows Phone的自定義登錄身份驗證,但不是Android,所以我可能會離開。當您連接到CustomLogin時,登錄API是https://mysite.azure-mobile.net/api/CustomLogin。我知道桌面控制器都是用/ tables/....命令調用api是否需要api/CustomLogin?或者你可以使用Fiddler或其他東西來查看它嘗試的URL。 – 2014-09-30 15:46:58
@亞當我已經嘗試了一切(與API /和沒有) - 不能使用小提琴手,因爲我的調試設備是我的android手機。不能在我的機器上使用仿真器,因爲它永遠不會加載.-我已經基本放棄了,因爲我沒有從adroid studio調試器反饋意見,說出了什麼問題 - 非常令人沮喪 – Paul 2014-10-01 13:49:21
它實際上是否在另一端觸發了API 。例如。在CustomLogin方法上放置一個斷點。第一個要點是查明它是否已經到達API以及錯誤是在那裏連接還是在發回信息。 – 2014-10-02 00:59:47