protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            using (var db = new DB())
            {
                var id = 0;
                if (((MvcHandler)httpContext.Handler).RequestContext.RouteData.Values["id"] != null)
                    id = Convert.ToInt32(((MvcHandler)httpContext.Handler).RequestContext.RouteData.Values["id"]);
                else
                    id = Convert.ToInt32(httpContext.Request.Form["id"]);
                var lession = db.Lessions.Find(id);
                var course = db.Courses.Find(lession.CourseID);

                if (lession.Course.TypeDictionary.NeedAuthorize == true)
                {
                    if (!httpContext.User.Identity.IsAuthenticated)
                    {
                        msg = "请先登陆在学习该节内容";
                        return false;
                    }

                    List<Lession> lessions = db.Lessions.Where(l => l.Course.ID == lession.CourseID).OrderBy(l => l.Time).ToList();

                    for (int i = 0; i < lessions.Count; i++)
                    {
                        if (lession.ID == lessions[i].ID)
                        {

                            if (i == 0)
                            {
                                break;
                            }
                            int tempId = lessions[i - 1].ID;

                            LessionScore lesssionScore = db.LessionScores.Where(ls => ls.LessionId == tempId).OrderByDescending(ls=>ls.Time).FirstOrDefault();

                            if (lesssionScore == null)
                            {
                                msg = "请先完成上一节的测试,在学习该节";
                                return false;
                            }
                            else
                            {
                                if (!lesssionScore.IsPassTest)
                                {
                                    msg = "请先完成上一节的测试,在学习该节";
                                    return false;
                                }
                            }

                        }
                    }
                }
            }

            return true;
        }
 protected override bool AuthorizeCore(HttpContextBase httpContext)
 {
     using (var db = new DB())
     {
         var id = 0;
         if (((MvcHandler)httpContext.Handler).RequestContext.RouteData.Values["id"] != null)
             id = Convert.ToInt32(((MvcHandler)httpContext.Handler).RequestContext.RouteData.Values["id"]);
         else
             id = Convert.ToInt32(httpContext.Request.Form["id"]);
         var live = db.Lives.Find(id);
         if (live.NeedAuthorize)
         {
             if (!httpContext.User.Identity.IsAuthenticated)
             {
                 msg = "请先登陆在观看内容";
                 return false;
             }
         }
     }
     return true;
 }
Esempio n. 3
0
 public Task SpiderBegin()
 {
     return Task.Factory.StartNew(() =>
     {
         using (var db = new DB())
         {
             System.Diagnostics.Debug.WriteLine("正在获取:" + BaseURL);
             var html = HttpHelper.HttpGet(BaseURL, Encoding);
             var _urls = RegMatchUrl(html);
             System.Diagnostics.Debug.WriteLine("获得URL:" + _urls.Count);
             var urls = FilterURL(_urls);
             System.Diagnostics.Debug.WriteLine("过滤后剩余:" + urls.Count);
             foreach (var url in urls)
             {
                 System.Diagnostics.Debug.WriteLine("正在抓取:" + url);
                 if (db.SpiderArticles.Any(x => x.URL == url)) continue;
                 Thread.Sleep(Interval);
                 var _html = HttpHelper.HttpGet(url, Encoding);
                 try
                 {
                     db.SpiderArticles.Add(new SpiderArticle
                     {
                         Time = GetTime(_html),
                         Title = GetTitle(_html),
                         Content = GetContent(_html, url),
                         Status = SpiderArticleStatus.待审核,
                         NewsID = null,
                         URL = url,
                         Source = Source
                     });
                     db.SaveChanges();
                 }
                 catch (Exception ex)
                 {
                     System.Diagnostics.Debug.WriteLine(ex.ToString());
                 }
             }
         }
     });
 }
 protected override bool AuthorizeCore(HttpContextBase httpContext)
 {
     if (httpContext.User.Identity.IsAuthenticated)
     {
         using (var db = new DB())
         {
             var user = (from u in db.Users
                         where u.Username == httpContext.User.Identity.Name
                         select u).Single();
             if (user.RoleAsInt > 0) return true;
             var id = 0;
             if (((MvcHandler)httpContext.Handler).RequestContext.RouteData.Values["id"] != null)
                 id = Convert.ToInt32(((MvcHandler)httpContext.Handler).RequestContext.RouteData.Values["id"]);
             else
                 id = Convert.ToInt32(httpContext.Request.Form["id"]);
             var lession = db.Lessions.Find(id);
             if (user.RoleAsInt >= lession.Course.AuthorityAsInt)
                 return true;
         }
     }
     return false;
 }