在Unity3d中,在Android上使用相同凭据拒绝ASP.net Web API授权

时间:2018-04-24 08:51:56

标签: c# android rest unity3d asp.net-web-api

我开发了一个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;
}

非常感谢任何帮助!

0 个答案:

没有答案