コード例 #1
0
        public static async Task <IActionResult> SendMessageToUser(
            [HttpTrigger(AuthorizationLevel.Anonymous, Global.HttpVerbPost, Route = nameof(SendMessageToUser) + Global.UserIdQueryParam)] HttpRequest req,
            [SignalR(HubName = Global.SignalRHubName)] IAsyncCollector <SignalRMessage> signalRMessages,
            ILogger log,
            String userId
            )
        {
            var validateTokenResult = GateKeeper.ValidateToken(req.Headers);

            if (validateTokenResult.Unauthorized)
            {
                log.LogError(validateTokenResult.Exception, validateTokenResult.LogMessage());
                return(new UnauthorizedResult());
            }

            using (var sr = new StreamReader(req.Body)) {
                var message = sr.ReadToEnd();

                log.LogInformation(String.Format(GlobalMessages.SendingMessageOnlyToUserFormat, message, userId));

                await signalRMessages.AddAsync(
                    new SignalRMessage {
                    UserId    = userId,
                    Target    = Global.MessageTarget,
                    Arguments = new[] { message }
                });

                return(new OkResult());
            }
        }
コード例 #2
0
        public static IActionResult SignalRConnectionNotAsSecure(
            [HttpTrigger(AuthorizationLevel.Anonymous, Global.HttpVerbGet, Route = null)] HttpRequest req,
            [SignalRConnectionInfo(HubName = Global.SignalRHubName, UserId = "{headers.x-ms-client-principal-id}")] SignalRConnectionInfo connectionInfo,
            ILogger log)
        {
            var validateTokenResult = GateKeeper.ValidateToken(req.Headers);

            if (validateTokenResult.Unauthorized)
            {
                log.LogError(validateTokenResult.Exception, validateTokenResult.LogMessage());
                return(new UnauthorizedResult());
            }
            return(new OkObjectResult(connectionInfo));
        }
コード例 #3
0
        public static IActionResult SignalRConnection(
            [HttpTrigger(AuthorizationLevel.Anonymous, Global.HttpVerbGet, Route = null)] HttpRequest req,
            IBinder binder,
            ILogger log)
        {
            var validateTokenResult = GateKeeper.ValidateToken(req.Headers);

            if (validateTokenResult.Unauthorized)
            {
                log.LogError(validateTokenResult.Exception, validateTokenResult.LogMessage());
                return(new UnauthorizedResult());
            }

            var connectionInfo = binder.Bind <SignalRConnectionInfo>(new SignalRConnectionInfoAttribute {
                HubName = Global.SignalRHubName, UserId = validateTokenResult.TokenModel.UserId
            });

            return(new OkObjectResult(connectionInfo));
        }