Light12306/ChatRoomServer.Www/Controllers/AnnouncementController.cs

53 lines
1.5 KiB
C#
Raw Normal View History

2015-07-03 21:04:37 +08:00
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;
2015-07-08 17:24:45 +08:00
using System.Web.Http.Cors;
2015-07-03 21:04:37 +08:00
using System.Web.Mvc.Filters;
using ChatRoomServer.Db;
using FSLib.MvcWeb;
using FSLib.Network.Http;
public class AnnouncementController : Controller
{
2015-08-03 15:07:49 +08:00
/// <summary>
/// Called when authorization occurs.
/// </summary>
/// <param name="filterContext">Information about the current request and action.</param>
protected override void OnAuthorization(AuthorizationContext filterContext)
{
base.OnAuthorization(filterContext);
var origin = filterContext.RequestContext.HttpContext.Request.Headers["Origin"];
if (!origin.IsNullOrEmpty())
{
if (!Regex.IsMatch(origin, @"^https?://.*?\.(fishlee\.net|liebao\.cn)$", RegexOptions.IgnoreCase))
{
filterContext.Result = new EmptyResult();
return;
}
filterContext.HttpContext.Response.AppendHeader("Access-Control-Allow-Origin", origin);
}
}
2015-07-03 21:04:37 +08:00
[AllowAnonymous]
[HttpGet, OutputCache(Duration = 1200, VaryByHeader = "Origin")]
public async Task<ContentResult> List()
{
var client = new HttpClient();
var ctx = client.Create<string>(HttpMethod.Get, $"http://{Request.Url.Host}:{Request.Url.Port}/api/announcement/list");
await ctx.SendAsync().ConfigureAwait(false);
2015-07-03 21:04:37 +08:00
return Content(ctx.Result, "application/json");
}
}
}