我有一个asp.net mvc和一个windows应用程序。
使用web客户端连接到ASP.Net mvc我希望阻止来自windows应用程序的请求。
发布于 2016-09-04 16:48:09
请记住,Google、IE、Forefox和所有其他浏览器也是windows应用程序,我们使用这些应用程序访问websites.If --您希望阻止对特定浏览器\user的访问--尽管您可以创建一个MVC过滤器并检查以下HttpContext属性:
filterContext.HttpContext.Request.UserAgent;
//Returns something like - Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36或
string browser = filterContext.HttpContext.Request.Browser.Browser;
//Returns something like - Chrome创建以下筛选器,在从windows应用程序调用网站时标识用户代理是什么,并在遇到特定用户代理时重新定向用户或抛出未经授权的HTTP状态代码:
public class CallerInterceptorAttribute : ActionFilterAttribute
{
public override void OnActionExecuting(ActionExecutingContext filterContext)
{
string userAgent = filterContext.HttpContext.Request.UserAgent;
string browser = filterContext.HttpContext.Request.Browser.Browser;
if (browser == "Chrome")
{
filterContext.RequestContext.HttpContext.Response.Redirect("http://www.google.com", true);
}
base.OnActionExecuting(filterContext);
}
}上面的操作筛选器可以在控制器级别、操作或全局应用于整个应用程序:
public class HomeController : Controller
{
[CallerInterceptorAttribute]
public ActionResult Index()
{
return View();
}
}https://stackoverflow.com/questions/39315890
复制相似问题