コード例 #1
0
        public string SaveGame(Guid sessionId)
        {
            var session = sessionManager.GetSession(sessionId);

            var userName        = session.VarsManager.GetUserName();
            var currentStateKey = session.StateMachineManager.GetCurrentState().Key;
            var varsInfo        = new List <VarInfo>();
            var vars            = session.VarsManager.GetAllVars(false);

            foreach (var avar in vars)
            {
                varsInfo.Add(MakeVarInfo(avar));
            }

            var saveGame = new SaveGame
            {
                UserName        = userName,
                CurrentStateKey = currentStateKey,
                VarsInfo        = varsInfo
            };

            var json = JsonConvert.SerializeObject(saveGame, Formatting.Indented);

            return(base64Encoder.Encode(json));
        }
コード例 #2
0
        public string Encode(IDictionary <string, object> payload, string secret)
        {
            var header = new Header("HS256");

            foreach (var standardClaim in _standardClaims)
            {
                payload.Add(new KeyValuePair <string, object>(standardClaim.Key, standardClaim.GetValue()));
            }

            var headerJsonBase64  = _base64Encoder.Encode(_jsonSerializer.Serialize(header));
            var payloadJsonBase64 = _base64Encoder.Encode(_jsonSerializer.Serialize(payload));

            var jwt       = headerJsonBase64 + "." + payloadJsonBase64;
            var signature = _base64Encoder.Encode(Sign(jwt, secret));

            return(jwt + "." + signature);
        }
コード例 #3
0
        public string For(string login, string signature)
        {
            var contentToBeEncoded =
                String.Format(
                    "{0}:{1}",
                    login,
                    signature);

            return(_base64Encoder.Encode(contentToBeEncoded));
        }
コード例 #4
0
        private async Task LoadAssetData(
            Asset asset,
            CancellationToken cancellationToken = default)
        {
            var dataEncoding = GetAssetDataEncoding(asset);
            var assetBytes   = await dataService.ReadAssetBytesAsync(
                options.AssetsDir,
                asset,
                cancellationToken);

            if (asset.Descriptor.AssetType == AssetType.Text)
            {
                assetBytes = textAssetDataProcessor.ProcessData(assetBytes);
            }

            string data = dataEncoding switch
            {
                AssetDataEncoding.String => stringEncoder.EncodeToString(assetBytes),
                AssetDataEncoding.Base64 => base64Encoder.Encode(assetBytes),
                _ => throw new NotSupportedException($"Data encoding {dataEncoding} is not supported")
            };

            asset.SetData(dataEncoding, data);
        }
コード例 #5
0
 private bool VerifySignature(string rawSignature, string secret, string signature)
 {
     return(signature == _base64Encoder.Encode(Sign(rawSignature, secret)));
 }