using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace ChatRoomServer.Www.Controllers
{
using System.Data.Entity;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Web.Mvc.Filters;
using ChatRoomServer.Db;
using FSLib.MvcWeb;
using FSLib.Network.Http;
public class AnnouncementController : Controller
{
///
/// Called when authorization occurs.
///
/// Information about the current request and action.
protected override void OnAuthentication(AuthenticationContext filterContext)
{
base.OnAuthentication(filterContext);
var origin = filterContext.RequestContext.HttpContext.Request.Headers["Origin"];
if (!origin.IsNullOrEmpty())
{
if (!Regex.IsMatch(origin, @"\.?(fishlee\.net|liebao\.cn)$", RegexOptions.IgnoreCase | RegexOptions.Singleline))
{
filterContext.Result = new EmptyResult();
}
else
{
Response.Headers["Access-Control-Allow-Origin"] = origin;
}
}
}
[AllowAnonymous]
[HttpGet, OutputCache(Duration = 1200, VaryByHeader = "Origin")]
public async Task List()
{
var client = new HttpClient();
var ctx = client.Create(HttpMethod.Get, $"http://{Request.Url.Host}:{Request.Url.Port}/api/announcement/list");
await ctx.SendTask();
return Content(ctx.Result, "application/json");
}
}
}