Cookie传递给另一个网址

时间:2013-08-04 05:40:43

标签: jquery asp.net-mvc http asp.net-mvc-4 cookies

我的解决方案有两个项目:MyApp.WebApiMyApp.Web

MyApp.WebApi包含返回所需ApiController数据的所有Json。它还有AccountController.Login操作,应该返回TokenId,还会自动在Cookie中设置TokrnId

[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内使用时,$.getJSON请求不会使用TokenId Cookie发送请求。

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

    });

问题1。如何通过HttpRequest发送Cookie MyApp.Web

问题2。我希望我的Login方法返回string而不是HttpResponseMessage。但在这种情况下我不知道如何设置cookie,因为我无法直接访问返回的响应(例如resp

0 个答案:

没有答案