コード例 #1
0
ファイル: OAuth2Controller.cs プロジェクト: usbuild/azuren
        public async Task<ActionResult> Authorize(string username = null, string password = null)
        {
              
            if (username != null)
            {
                if (password != null)
                {
                    var entities = new AzurenEntities();
                    User u;
                    u = username.Contains("@") ? entities.Users.SingleOrDefault(m => m.Email == username) : entities.Users.SingleOrDefault(m => m.Username == username);
                    if (u == null || StringHelper.CalcPassword(password, u.Salt) != u.Password)
                    {
                        return RedirectToAction("Authorize", new { redirect_uri = Request.Params["redirect_uri"], client_id = Request.Params["client_id"], scope = Request.Params["scope"], error = true });
                    }
                    FormsAuthentication.SetAuthCookie(u.Username, true);
                    System.Web.HttpContext.Current.User = new RolePrincipal(new MyIdentity(u.Username, "Forms", true));
                }
            }
            if (!User.Identity.IsAuthenticated)
            {
                return Content("You must loggin first");
            }

            var authServer = new AuthorizationServer(new AuthorizationServerHost());
            var authRequest = await authServer.ReadAuthorizationRequestAsync(Request);
            var grantedResponse = authServer.PrepareApproveAuthorizationRequest(
                authRequest, this.User.Identity.Name, authRequest.Scope);
            IProtocolMessage responseMessage = grantedResponse;
            var response = await authServer.Channel.PrepareResponseAsync(responseMessage);
            return response.AsActionResult();
        }
コード例 #2
0
ファイル: ToDoTaskQueue.cs プロジェクト: usbuild/azuren
        public static void StartHandle()
        {
            var timeInterval = new TimeSpan(0, 1, 0);
            var client = new AzurenClient("1", "111111");
            var entities = new AzurenEntities();

            var thread = new Thread(()=>
            {
                while (true)
                {
                    var upper = string.Format("{0:D19}", DateTime.UtcNow.Ticks + new TimeSpan(0, 5, 30).Ticks);
                    var lowwer = string.Format("{0:D19}", DateTime.UtcNow.Ticks + new TimeSpan(0, 4, 30).Ticks);
                    var query = new TableQuery().Where(
                        TableQuery.CombineFilters(
                            TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.LessThan, upper),
                            TableOperators.And,
                            TableQuery.GenerateFilterCondition("RowKey", QueryComparisons.GreaterThan, lowwer)
                            )
                        );
                    var result = TodoTaskTable.ExecuteQuery(query);
                    if (result.Any())
                    {
                        foreach (var entity in result)
                        {
                            int id = int.Parse(entity.PartitionKey);
                            ToDoTask task = entities.ToDoTasks.SingleOrDefault(m => m.Id == id);
                            if (task != null)
                            {
                                client.SendMessage(task.ToDoProject.UserName, new { content=String.Format("Task #{0} will overdue in 5 minutes.", task.Id)});
                            }
                            TodoTaskTable.Execute(TableOperation.Delete(entity));
                        }
                    }
                    Thread.Sleep(timeInterval);
                }
            });
            thread.Start();
        }
コード例 #3
0
ファイル: GlobalData.cs プロジェクト: usbuild/azuren
 public static AzurenEntities GetDBContext(HubCallerContext ctx)
 {
     if (ctx.Request.Items.ContainsKey(ObjectContextKey))
     {
         return ((AzurenEntities)HttpContext.Current.Items[ObjectContextKey]);
     }
     else
     {
         AzurenEntities context = new AzurenEntities();
         ctx.Request.Items.Add(ObjectContextKey, context);
         return context;
     }
 }