编辑:因此,如果我删除引用并右键单击添加引用并将其添加回来。它显示在对象浏览器中并且能够解析命名空间。如果我构建项目或构建解决方案,尽管它从对象浏览器中消失并且错误再次出现。
我正在尝试将 ZenDesk 集成到我们当前的软件中,以帮助技术支持跟踪他们的票证。为此,我需要使用来自 github 的一些简单的 C# 代码来设置 SSO,以生成 JSON Web Token。
该项目位于 Visual Studio 2010 中,代码需要 JWT 才能运行,我从 NuGet 安装。
无论出于何种原因,尽管名称空间不会在代码中解析。
我在这里得到两个错误:
string token = JWT.JsonWebToken.Encode(payload, SHARED_KEY, JWT.JwtHashAlgorithm.HS256);
它只是说,当前上下文中不存在名称“JWT”。这是一个单一的项目解决方案,所以一切都在一个地方。我也无法在对象浏览器中查看 JWT.dll。即使我尝试使用 using 指令:
using JWT;
还是解决不了。
版本为 JWT 1.3.2 版本。
知道为什么这不能解决吗?
这是完整的代码:
// Handler: <%@ WebHandler Language="C#" Class="Zendesk.JWTLogin" CodeBehind="Zendesk.JWTLogin.cs" %>
// Requires: JWT (https://nuget.org/packages/JWT)
// Tested with .NET 4.5
using System;
using System.Web;
using System.Collections.Generic;
namespace Zendesk
{
public class JWTLogin : IHttpHandler
{
private const string SHARED_KEY = "{some key}";
private const string SUBDOMAIN = "{some name}";
public void ProcessRequest(HttpContext context)
{
TimeSpan t = (DateTime.UtcNow - new DateTime(1970, 1, 1));
int timestamp = (int)t.TotalSeconds;
var payload = new Dictionary<string, object>() {
{ "iat", timestamp },
{ "jti", System.Guid.NewGuid().ToString() },
//{ "external_id", something that gets user PKey },
// { "name", currentUser.name },
// { "email", currentUser.email }
};
string token = JWT.JsonWebToken.Encode(payload, SHARED_KEY, JWT.JwtHashAlgorithm.HS256);
string redirectUrl = "https://" + SUBDOMAIN + ".zendesk.com/access/jwt?jwt=" + token;
context.Response.Redirect(redirectUrl);
}
public bool IsReusable
{
get
{
return true;
}
}
}
}