验证用户的安全原因需要HTTPS

时间:2014-06-03 14:17:09

标签: asp.net-mvc asp.net-web-api

我正在使用asp.net mvc4中的webapi服务为Authenticate用户编写服务, 当用户登录使用Authenticate应该使用的移动应用程序时,此服务用于移动应用程序 发生了,我在这里编写了加密和解密的代码 http://www.codeproject.com/Articles/630986/Cross-Platform-Authentication-With-ASP-NET-Web-API 错误:

  

出于安全原因需要HTTPS。

显示以下错误。

当在浏览器或小提琴手中检查时,它显示相同的错误。

public static void Register(HttpConfiguration config)
    {
 TokenInspector tokenInspector = new TokenInspector() { InnerHandler = new  
    HttpControllerDispatcher(config) };


        config.Routes.MapHttpRoute(
            name: "Authentication",
            routeTemplate: "api/User/{id}",
            defaults: new { controller = "User" }
        );

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional },
            constraints: null,
            handler: tokenInspector
        );
        config.MessageHandlers.Add(new HTTPSGuard()); 

    }

1 个答案:

答案 0 :(得分:1)

实际上,我目前正在开发一个项目,该项目受到您提到的相同CodeProject文章的启发,因此我非常熟悉它的工作原理。

您获得的错误只是意味着您需要使用HTTPS(而不是HTTP)来访问您的API。所以,像:https://localhost:port/api/values。为此,仅使用https作为URI方案是不够的。您需要生成自签名证书(或者如果有可用的话,请使用真实证书),然后将其附加到您的主机 - IIS或自托管有不同的步骤来实现此目的。有各种网站可以帮助您完成这些步骤; this question似乎有一个非常全面的解释。

如果您不关心HTTPS,请从您的代码中删除HTTPSGuard邮件处理程序,并将Register函数中的最后一行添加到MessageHandlers管道