1

Mozilla Personaログインでサンプルアプリケーションを実行しようとしていますが、サンプルコードでエラーが発生しました。

コード

public class AuthController : Controller
{
    [HttpPost]
    public ActionResult Login(string assertion)
    {
        if (assertion == null)
        {
            // The 'assertion' key of the API wasn't POSTED. Redirect,
            // or whatever you'd like, to try again.
            return RedirectToAction("Index", "Home");
        }

        using (var web = new WebClient())
        {
            // Build the data we're going to POST.
            var data = new NameValueCollection();
            data["assertion"] = assertion;
            data["audience"] = "https://example.com:443"; // Use your website's URL here.


            // POST the data to the Persona provider (in this case Mozilla)
            var response = web.UploadValues("https://verifier.login.persona.org/verify", "POST", data);
            var buffer = Encoding.Convert(Encoding.GetEncoding("iso-8859-1"), Encoding.UTF8, response);


            // Convert the response to JSON.
            var tempString = Encoding.UTF8.GetString(buffer, 0, response.Length);
            var reader = new JsonReader();
            dynamic output = reader.Read(tempString);

            if (output.status == "okay")
            {
                string email = output.email; // Since this is dynamic, convert it to string.
                FormsAuthentication.SetAuthCookie(email, true);
                return RedirectToAction("Index", "Home");
            }

            // Could not log in, do something else.
            return RedirectToAction("Index", "Home");
        }
    }
}

エラー

以下の行で、コンストラクターが0個の引数を取ることができないことを通知するエラーが発生しました。OK、これは非常に明確です。しかし、私がMozillaPersonaから入手したこのコード。

var reader = new JsonReader();

アップデート

以下のコードで同じエラーが発生しました

var reader = new JsonFx.Json.JsonReader();

誰かが私を助けることができますか?

私はstackoverflowでいくつかの質問を見つけました。このような質問は、同じコードを見ることができます。

4

1 に答える 1

2

JsonFXの最新バージョンにアップグレードする必要があります。これは、 https ://github.com/jsonfx/jsonfxから入手できます。

この最新バージョンでJsonReaderは、実際にはデフォルトのコンストラクターが含まれています。これにより、コードが機能するようになります。

あなたがおそらく持っているバージョン(私はここで古いバージョンを見つけました)にJsonReaderは、いくつかのコンストラクターがありますが、それらのどれもゼロ引数を受け入れません。

于 2013-02-07T20:02:30.650 に答える