/// <summary> /// Creates a remote user to log on to a VM for a multiplayer server build. /// </summary> public static void CreateRemoteUser(CreateRemoteUserRequest request, Action <CreateRemoteUserResponse> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null) { var context = (request == null ? null : request.AuthenticationContext) ?? PlayFabSettings.staticPlayer; PlayFabHttp.MakeApiCall("/MultiplayerServer/CreateRemoteUser", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders, context); }
/// <summary> /// Creates a remote user to log on to a VM for a multiplayer server build. /// </summary> public void CreateRemoteUser(CreateRemoteUserRequest request, Action <CreateRemoteUserResponse> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null) { var context = (request == null ? null : request.AuthenticationContext) ?? authenticationContext; var callSettings = apiSettings ?? PlayFabSettings.staticSettings; if (!context.IsEntityLoggedIn()) { throw new PlayFabException(PlayFabExceptionCode.NotLoggedIn, "Must be logged in to call this method"); } PlayFabHttp.MakeApiCall("/MultiplayerServer/CreateRemoteUser", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders, context, callSettings, this); }
/// <summary> /// Creates an account on a VM for RDP use /// </summary> /// <returns> /// RDP connection information including ip, port and credentials /// </returns> public async Task <RDPInformation> CreateRDPCredentials(string buildID, AzureRegion region, string VMID) { // Create a random username, usernames must be unique Random rng = new Random(Environment.TickCount); string strUsername = "******" + rng.Next().ToString(); DateTime expirationTime = DateTime.UtcNow.AddMinutes(60); CreateRemoteUserRequest request = new CreateRemoteUserRequest() { BuildId = buildID, Region = region, ExpirationTime = expirationTime, VmId = VMID, Username = strUsername, }; // Create the user on the VM and retrieve the password generated by the backend service var resp = await PlayFab.PlayFabMultiplayerAPI.CreateRemoteUserAsync(request); string strPassword = resp.Result.Password; if (!CheckForError(resp)) { GetRemoteLoginEndpointRequest endpointRequest = new GetRemoteLoginEndpointRequest() { BuildId = buildID, Region = region, VmId = VMID, }; // Retrieve the RDP connection details for the VM var endpointResp = await PlayFab.PlayFabMultiplayerAPI.GetRemoteLoginEndpointAsync(endpointRequest); RDPInformation rdpInfo = new RDPInformation { Username = strUsername, Password = strPassword, Address = endpointResp.Result.IPV4Address, Port = endpointResp.Result.Port, }; return(rdpInfo); } return(null); }
/// <summary> /// Creates a remote user to log on to a VM for a multiplayer server build. /// </summary> public static void CreateRemoteUser(CreateRemoteUserRequest request, Action <CreateRemoteUserResponse> resultCallback, Action <PlayFabError> errorCallback, object customData = null, Dictionary <string, string> extraHeaders = null) { PlayFabHttp.MakeApiCall("/MultiplayerServer/CreateRemoteUser", request, AuthType.EntityToken, resultCallback, errorCallback, customData, extraHeaders); }
/// <summary> /// Creates a remote user to log on to a VM for a multiplayer server build. /// </summary> public static async Task <PlayFabResult <CreateRemoteUserResponse> > CreateRemoteUserAsync(CreateRemoteUserRequest request, object customData = null, Dictionary <string, string> extraHeaders = null) { if (PlayFabSettings.EntityToken == null) { throw new PlayFabException(PlayFabExceptionCode.EntityTokenNotSet, "Must call GetEntityToken before calling this method"); } var httpResult = await PlayFabHttp.DoPost("/MultiplayerServer/CreateRemoteUser", request, "X-EntityToken", PlayFabSettings.EntityToken, extraHeaders); if (httpResult is PlayFabError) { var error = (PlayFabError)httpResult; PlayFabSettings.GlobalErrorHandler?.Invoke(error); return(new PlayFabResult <CreateRemoteUserResponse> { Error = error, CustomData = customData }); } var resultRawJson = (string)httpResult; var resultData = PluginManager.GetPlugin <ISerializerPlugin>(PluginContract.PlayFab_Serializer).DeserializeObject <PlayFabJsonSuccess <CreateRemoteUserResponse> >(resultRawJson); var result = resultData.data; return(new PlayFabResult <CreateRemoteUserResponse> { Result = result, CustomData = customData }); }