我开发了一个RESTful ASP.net Web API,我正在从Unity应用程序中使用它。在测试API时,它可以在Web浏览器中正常工作,并且可以在Windows中的Unity应用程序中正常工作,但在Android上的Unity3d应用程序中,我得到“此请求已拒绝授权”。我得到了这个,尽管我在Windows或Web浏览器上测试时使用了相同的凭据。
当我在浏览器(Windows或Android)中测试时,它工作正常,我得到了我期望的JSON输出。
API通过HTTPS运行,并使用IIS基本身份验证。是否有一些东西可以检测到我在Android中使用Unity3D然后拒绝请求?
网址如下所示:
https://[username]:[password]@[api.domain.name]/Assets/[a guid]
控制器如下所示:
public class AssetsController : ApiController
{
[Authorize]
public IHttpActionResult Get(Guid id)
{
AssetLogic assetLogic = new AssetLogic();
List<Asset> Assets = assetLogic.GetCompanyAssets(id).ToList();
return Ok(Assets);
}
}
我在global.asax中有这个:
protected void Application_Start(object sender, EventArgs e)
{
GlobalConfiguration.Configuration.Routes.MapHttpRoute("Default",
"{controller}/{id}",
new { id = RouteParameter.Optional });
GlobalConfiguration.Configuration.Formatters.JsonFormatter.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore;
}
非常感谢任何帮助!