自定义身份验证未授权

问题描述:

实施解决方案后总是返回401未经授权。我的自定义API控制器或任何匿名方法按预期工作。自定义身份验证未授权

的问题与System.IdentityModel.Tokens.Jwt版本4.0.0,它既可以是一个错误或版本问题如下所述:在

http://katanaproject.codeplex.com/discussions/568067

也由于另一个bug如这里所描述的最新版本:

https://github.com/Azure/azure-mobile-services/issues/325

我们可以不使用Web API 2.2,所以我们需要降级到的WebAPI 2.1。

最终解决方案是获得正确的软件包版本号。

我永远无法获得WindowsAzure.MobileServices.Backend的最新版本,所以我不得不将其降级到以前的版本。

这是我的package.config,它显示了我终于得到所有工作的所有包和版本号。

<packages> 
    <package id="Autofac" version="3.5.0" targetFramework="net45" /> 
    <package id="AutoMapper" version="3.2.1" targetFramework="net45" /> 
    <package id="EntityFramework" version="6.1.0" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Cors" version="5.1.2" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Identity.Core" version="2.0.1" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Identity.Owin" version="2.0.1" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.Razor" version="3.1.2" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi" version="5.1.1" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.Client" version="5.1.2" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.Core" version="5.1.2" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.Cors" version="5.1.2" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.OData" version="5.1.2" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.Owin" version="5.1.2" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.Tracing" version="5.1.2" targetFramework="net45" /> 
    <package id="Microsoft.AspNet.WebApi.WebHost" version="5.1.1" targetFramework="net45" /> 
    <package id="Microsoft.Data.Edm" version="5.6.0" targetFramework="net45" /> 
    <package id="Microsoft.Data.OData" version="5.6.0" targetFramework="net45" /> 
    <package id="Microsoft.Owin" version="2.1.0" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Host.SystemWeb" version="2.1.0" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Security" version="2.1.0" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Security.ActiveDirectory" version="2.1.0" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Security.Cookies" version="2.1.0" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Security.Facebook" version="2.1.0" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Security.Google" version="2.1.0" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Security.Jwt" version="2.1.0" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Security.MicrosoftAccount" version="2.1.0" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Security.OAuth" version="2.1.0" targetFramework="net45" /> 
    <package id="Microsoft.Owin.Security.Twitter" version="2.1.0" targetFramework="net45" /> 
    <package id="Microsoft.WindowsAzure.ConfigurationManager" version="2.0.3" targetFramework="net45" /> 
    <package id="Newtonsoft.Json" version="6.0.4" targetFramework="net45" /> 
    <package id="Owin" version="1.0" targetFramework="net45" /> 
    <package id="RazorEngine" version="3.4.1" targetFramework="net45" /> 
    <package id="System.IdentityModel.Tokens.Jwt" version="3.0.2" targetFramework="net45" /> 
    <package id="System.Spatial" version="5.6.0" targetFramework="net45" /> 
    <package id="WindowsAzure.MobileServices.Backend" version="1.0.342" targetFramework="net45" /> 
    <package id="WindowsAzure.MobileServices.Backend.Entity" version="1.0.342" targetFramework="net45" /> 
    <package id="WindowsAzure.MobileServices.Backend.Tables" version="1.0.342" targetFramework="net45" /> 
    <package id="WindowsAzure.ServiceBus" version="2.3.4.0" targetFramework="net45" /> 
</packages> 

更新

即使从工作,我永远无法成功升级基准升级所有软件包之后,但是我重新从头开始的项目,并添加一切都回到了它现在不工作顺利在版本1.0.439。所以我可以从这个版本说它现在正在工作。

+0

一般来说,你不应该更新你的后端nuget包。我们在托管环境中有特定的版本,在部署时会导致冲突。将来,我们将通过硬编码最大版本号来改进这一点。 – 2014-12-05 21:04:38