0

MVC 4 Web APIサイトに正常にログインし、. ASPXAUTH Set-Cookie は次のようになります。

    private void Login()
    {
        var client = new RestClient("http://QQQQ/MobileAPI");
        client.CookieContainer = new CookieContainer();
        var request = new RestRequest {Resource = "/api/account/Logon", Method = Method.POST};
        request.AddObject(new {Username = "john", Password = "secret"});

        var responseLogin = client.Execute(request);
        if (responseLogin.StatusCode == HttpStatusCode.OK)
            ProcessData(client.CookieContainer);
    }

ご覧のとおり、CookieContainerProcessData()関数に渡して、コントローラーの背後にあるRESTfulコマンドを処理し[AUTHORIZE]ます。

ProcessData() 呼び出しが HttpStatusCode.Unauthorized で失敗する

質問: 認証を正しく送信していないと思いますか?

    private void ProcessData(CookieContainer cookieJar)
    {
        var client = new RestClient("QQQQQ/MobileAPI");
        client.CookieContainer = cookieJar;
        var request = new RestRequest {Resource = "/api/values/5", Method = Method.GET};

        var responseForUser = client.ExecuteAsGet<AppUser>(request, "GET");

        if (responseForUser.StatusCode == HttpStatusCode.OK)
        {
            AppUser app = responseForUser.Data;
            Console.WriteLine(app.CUSAName);
        }

        if (responseForUser.StatusCode == HttpStatusCode.Unauthorized)
        {
            Console.WriteLine("FAILED");
        }
    }
4

1 に答える 1

0

サーバーをIISRESETでリセットする必要があったことがわかりました。状態が悪かったのでしょう。

これを行うと、上記のコードはAndroid デバイスで完全に機能しました。

于 2013-04-30T17:54:11.147 に答える