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(); }
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(); }
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; } }