Iphone 是否可能有一个ASP.NET Web API,它只能由移动本机应用程序(iOS、Android、Windows Phone等)访问?
假设我有一个公共Web API,它不需要授权,比如:Iphone 是否可能有一个ASP.NET Web API,它只能由移动本机应用程序(iOS、Android、Windows Phone等)访问?,iphone,asp.net-web-api,asp.net-web-api2,asp.net-core-mvc,Iphone,Asp.net Web Api,Asp.net Web Api2,Asp.net Core Mvc,假设我有一个公共Web API,它不需要授权,比如: public class MobileDataController : ApiController { [AllowAnonymous] public IEnumerable<string> Get() { return new string[] { "One", "Two", "Three" }; } } public类MobileDataController:ApiContr
public class MobileDataController : ApiController
{
[AllowAnonymous]
public IEnumerable<string> Get()
{
return new string[] { "One", "Two", "Three" };
}
}
public类MobileDataController:ApiController
{
[异名]
公共IEnumerable Get()
{
返回新字符串[]{“一”、“二”、“三”};
}
}
是否可以使此Web API仅适用于我的iPhone和Android本机应用程序
基本上,我不希望Web API处理任何不是来自我的手机本机应用程序的请求。不。你想要的是所谓的设备认证,这是一个捆绑在下面的概念。然而,这是不可能的,除非你拥有这个设备,并且能够确保它不会被越狱,并且所有的通信都不会被截获 无论您添加什么代码,攻击者都可以对其进行反向工程。攻击者可以使用fiddler添加您发送的标题,以表明它是移动设备。如果将OAuth与客户机ID一起使用,则客户机ID需要位于软件内部,因此可以进行反向工程
例如,SnapChat不支持Windows Phone。Windows Phone上有SnapChat克隆,SnapChat唯一能做的就是提交一份删除通知,因为如果它们做得好,就无法与iPhone上运行的真实客户端区分开来。听起来你确实需要授权。Kritner-gota读到了。我仍然在想,我是否可以不经认证就做到这一点。我的用户不需要通过身份验证即可使用该应用程序…可能来自Request.UserAgent?也许可以忽略来自您不想使用的平台的请求?请看:blowdart-hmm-有什么我们可以做的,让黑客机器人更难使用我们的Web API。例如,在web应用程序中,我们使用GoogleReCAPTCAH来确保它是人。我们可以做类似于iPhone或Android原生应用程序的事情吗?没有任何真正的成功程度。