1

私のソリューションには 2 つのプロジェクトがあります:MyApp.WebApiMyApp.Web.

には、必要なデータを返すためのMyApp.WebApiすべてのが含まれています。を返す必要があるアクションもあり、Cookie に を自動的に設定します。ApiControllerJsonAccountController.LoginTokenIdTokrnId

[HttpGet]
public HttpResponseMessage Login(string username, string password)
{
    var principal = // Some code to get the principal
    var tokenId = principal.TicketId;
    var resp = new HttpResponseMessage(HttpStatusCode.OK);
    var cookie = new CookieHeaderValue("TokenId", tokenId)
    { 
        Expires = DateTimeOffset.Now.AddDays(1),
        Domain = this.Request.RequestUri.Host, Path = "/" 
    };

    resp.Headers.AddCookies(new[] { cookie });
    resp.Content = new StringContent(tokenId);
    return resp;
}

ブラウザを使用すると正常に動作します。ただし、リクエスト内で使用する場合はMyApp.Web、Cookieを使用し$.getJSONてリクエストを送信しないでください。TokenId

$.getJSON(serviceAddress)
    .done(function (result, status) {
        // Do some logic
    })
    .fail(function (result, status) {
        logger.logError(result);

    });

質問1。CookieHttpRequestを送信して sを作成するにはどうすればよいですか?MyApp.Web

質問2。stringの代わりにLogin メソッドが返されるようにしHttpResponseMessageます。ただし、その場合、返される応答に直接アクセスできないため、Cookie を設定する方法がわかりません (例resp) 。

4

0 に答える 0