首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在ASP.NET MVC中阻止Windows应用程序请求

如何在ASP.NET MVC中阻止Windows应用程序请求
EN

Stack Overflow用户
提问于 2016-09-04 10:20:16
回答 1查看 159关注 0票数 0

我有一个asp.net mvc和一个windows应用程序。

使用web客户端连接到ASP.Net mvc我希望阻止来自windows应用程序的请求。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-09-04 16:48:09

请记住,Google、IE、Forefox和所有其他浏览器也是windows应用程序,我们使用这些应用程序访问websites.If --您希望阻止对特定浏览器\user的访问--尽管您可以创建一个MVC过滤器并检查以下HttpContext属性:

代码语言:javascript
运行
复制
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

代码语言:javascript
运行
复制
string browser = filterContext.HttpContext.Request.Browser.Browser;
//Returns something like - Chrome

创建以下筛选器,在从windows应用程序调用网站时标识用户代理是什么,并在遇到特定用户代理时重新定向用户或抛出未经授权的HTTP状态代码:

代码语言:javascript
运行
复制
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);
    }
}

上面的操作筛选器可以在控制器级别、操作或全局应用于整个应用程序:

代码语言:javascript
运行
复制
public class HomeController : Controller
{
    [CallerInterceptorAttribute]
    public ActionResult Index()
    {
        return View();
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39315890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档