0

編集:したがって、参照を削除して右クリックして参照を追加し、再度追加すると、オブジェクトブラウザに表示され、名前空間を解決できます。プロジェクトをビルドするか、ソリューションをビルドすると、オブジェクト ブラウザーから消えてエラーが再び表示されます。

ZenDesk を現在のソフトウェアに統合して、テクニカル サポートがチケットを追跡できるようにしようとしています。これを行うには、github の単純な C# コードを使用して SSO をセットアップし、JSON Web トークンを生成する必要があります。

プロジェクトは Visual Studio 2010 にあり、コードを実行するには NuGet からインストールした JWT が必要です。

なんらかの理由で、名前空間はコードで解決されません。

ここで 2 つのエラーが発生します。

 string token = JWT.JsonWebToken.Encode(payload, SHARED_KEY, JWT.JwtHashAlgorithm.HS256);

「名前「JWT」は現在のコンテキストには存在しません。これは 1 つのプロジェクト ソリューションであるため、すべてが 1 か所にあります。また、オブジェクト ブラウザで 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;
            }
        }
    }
}
4

0 に答える 0