这个需求有点怪异?确实很中国特色!我有个网站,绑定了几个域名,其中主域名不想开放匿名访问,因为强大的无所不能的GFW和网监会时刻盯着你,让你不得安宁,其他副域名么就无所谓了,封了就封了,于是就有这个需求出来了。
[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method)]
public class AnonymousAccessNotAllowedForDomainsAttribute : ActionFilterAttribute
{
/// <summary>
/// The domains which not allow anonymous access
/// </summary>
public string Domains { get; set; }
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
if (filterContext.ActionDescriptor.ControllerDescriptor.ControllerName.Equals("accounts", StringComparison.CurrentCultureIgnoreCase))
{
return;
}
string[] domains = Domains.Split(new string[] { "," }, StringSplitOptions.RemoveEmptyEntries);
string hostName = filterContext.HttpContext.Request.Url.Host;
bool inDomainList = false;
foreach (string domain in domains)
{
if (hostName.Equals(domain, StringComparison.CurrentCultureIgnoreCase))
{
inDomainList = true;
break;
}
}
if (!inDomainList)
return;
var user = UserManager.GetUser();
if (user == null || user.IsAnonymous)
{
//send them off to the login page
filterContext.Result = new RedirectToRouteResult(new RouteValueDictionary(new
{
action = "signin",
controller = "accounts",
area = ""
}));
}
}
}
阅读
好看
已推荐到看一看
你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
取消
分享想法到看一看
确定
最多200字,当前共字