Esempio n. 1
0
        /// <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);
        }
Esempio n. 3
0
    /// <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
            });
        }