我正在关注本教程,以便通过移动服务器提供用户名/密码身份验证:http://www.newventuresoftware.com/blog/custom-authentication-with-azure-mobile-apps
我的服务器端代码就是这样,使用Microsoft.Azure.Mobile.Server.Login NuGet包:
private JwtSecurityToken GetAuthenticationTokenForUser(string username)
{
var claims = new[] { new Claim(JwtRegisteredClaimNames.Sub, username) };
var signingKey = Environment.GetEnvironmentVariable("WEBSITE_AUTH_SIGNING_KEY");
var issuer = Request.RequestUri.GetLeftPart(UriPartial.Authority);
return AppServiceLoginHandler.CreateToken(claims, signingKey, issuer, issuer, TimeSpan.FromHours(24));
}
这会产生一个奇怪的编译器错误。对AppServiceLoginHandler.CreateToken
的调用正在打破编译器的明显误导性消息:
对'JwtSecurityToken'类型的引用声称它在'System.IdentityModel.Tokens.Jwt'中定义,但找不到它。
Intellisense会选择System.IdentityModel.Tokens.Jwt.JwtSecurityToken
类型。重建项目没有帮助。无论我做什么,这条线都会破坏构建。
答案 0 :(得分:1)
更新到最新的nuget版本5.0.0时出现此错误。恢复到4.0.2.2修复它。 (参考System.IdentityModel.Tokens.Jwt nuget包)