asp.net-web-api – WebAPI:403在发布网站后被禁止
发布时间:2021-03-30 17:19:06  所属栏目:asp.Net  来源:互联网 
            导读:好吧,我很难找到问题,因为它在本地工作,但在发布后,结果很简单: 错误代码:403禁止.服务器拒绝指定的统一资源定位符(URL).联系服务器管理员. (12202) 代码: [RoutePrefix(api/v1/project)]public class ProjectController : BaseApiController{ [HttpGet] p
                
                
                
            | 
                         好吧,我很难找到问题,因为它在本地工作,但在发布后,结果很简单: 错误代码:403禁止.服务器拒绝指定的统一资源定位符(URL).联系服务器管理员. (12202) 代码: [RoutePrefix("api/v1/project")]
public class ProjectController : BaseApiController
{
    [HttpGet]
    public HttpResponseMessage GetProjects()
    {
        HttpResponseMessage resp = new HttpResponseMessage(HttpStatusCode.OK);
        if(User.Identity.IsAuthenticated)
        {
            var model = new ModelFactory().CreateProjects();
            resp = Request.CreateResponse(HttpStatusCode.OK,model);
        }
        return resp;
    }
} 
 public static class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        // all actions under /project routes require authentication
        config.Routes.MapHttpRoute(
            name: "ProjectApi",routeTemplate: "api/v1/{controller}/{action}/{apikey}",defaults: new { apikey = RouteParameter.Optional },constraints: new { controller = "project" },handler: new BasicAuthHandler(config));
        // all routes requires an api key
        config.MessageHandlers.Add(new ApiKeyHandler());
        config.MapHttpAttributeRoutes();
    }
} 
 我已经从网上尝试了几个“解决方案”,但似乎没有一个解决这个问题.我添加了: // Stop IIS/Asp.Net breaking our routes RouteTable.Routes.RouteExistingFiles = true; 来自:http://www.grumpydev.com/2013/09/17/403-14-error-when-trying-to-access-a-webapi-route/ 并确保: <modules runAllManagedModulesForAllRequests="true"> 拥有上面的代码,使用以下链接提供了一个成功的连接,它检查(按正确的顺序)APIkey(ApiKeyHandler),检查用户是否需要登录(BasicAuthHandler)然后转到控制器中的方法({controller }/{行动}). // THIS WORKS! http://localhost:51077/api/v1/project/getprojects?apikey=123456 然后我们做一个发布并尝试相同的事情 // This is haunted with number 403 http://website.com/api/v1/project/getprojects?apikey=123456 给出错误代码:403 Forbidden. 我很无能为力.我甚至尝试将“NETWORK SERVICE”的整个发布文件夹的安全设置更改为完全访问权限..没有变化. 如果您需要更多英特尔,请告诉我. 解决方法称为Web服务器计算机,他们有一个防火墙阻止传入的webapi调用进行身份验证.它现在应该工作:)(编辑:莱芜站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!  | 
                  
相关内容
- asp.net-mvc – 使用Viewbag绑定DropdownlistFor
 - 如何重定向到ASP.NET MVC中的调用页面?
 - ASP.NET VNext类库System.Runtime.Serialization
 - 动态Linq的逻辑与和逻辑或的条件查询
 - asp.net-mvc-2 – MVC源代码单例模式
 - asp.net – 注册.NET 4.5 IIS 10 Windows 10
 - asp.net-mvc – Asp.Net MVC CSLA DDD可能
 - ASP.NET微信公众号用于给指定OpenId用户发送红包
 - Asp.net MVC实现生成Excel并下载功能
 - ASP.NET Webdeploy失败;项目中不存在AddScheduledJob
 
推荐文章
            站长推荐
            - asp.net-mvc – MVC 3布局页面,Razor模板和下拉列
 - asp.net-mvc – mvc razor @helper可以返回非编码
 - asp.net-mvc – 使用mvc的主要目的
 - asp.net-web-api – WebAPI:403在发布网站后被禁
 - 利用ASP.NET MVC和Bootstrap快速搭建个人博客之后
 - asp.net-mvc – 将viewdata传递给asp.net mvc ma
 - asp.net-mvc – DDD原理和ASP.NET MVC项目设计
 - ASP.NET Core 1.0 ConfigurationBuilder().AddJs
 - Asp.NET控制文件上传的大小方法(超简单)
 - ASP.NET Excel导出编码问题
 
热点阅读
            