Asp.net mvc 如何向web API发送经过身份验证的ajax调用

Asp.net mvc 如何向web API发送经过身份验证的ajax调用,asp.net-mvc,authentication,asp.net-web-api,Asp.net Mvc,Authentication,Asp.net Web Api,我有一个Web Api应用程序,它有以下问题 [HttpGet] [Route("Account/userName{userName}/password={password}/rememberMe/{rememberMe}")] public HttpResponseMessage LogIn(string userName, string password, bool rememberMe) { if (User.Identity.IsAuthenti

我有一个Web Api应用程序,它有以下问题

 [HttpGet]
    [Route("Account/userName{userName}/password={password}/rememberMe/{rememberMe}")]
    public HttpResponseMessage LogIn(string userName, string password, bool rememberMe)
    {
        if (User.Identity.IsAuthenticated)
        {
            return Request.CreateResponse(HttpStatusCode.Conflict, "already logged in.");
        }

        var dbPerson = dbContext.Persons.Where(x => x.UserName.Equals(userName) && x.EncryptedPassword.Equals(password)).FirstOrDefault();
        if (dbPerson != null)
        {
            FormsAuthentication.SetAuthCookie(userName, rememberMe);
            return Request.CreateResponse(HttpStatusCode.OK, "logged in successfully");
        }
        else
        {
            return new HttpResponseMessage(HttpStatusCode.Unauthorized);
        }
    }
我是从另一个MVC项目打来的。我得到了身份验证,但就在下一页,我将调用ajax方法

var-uri=''

$(文档).ready(函数(){
//发送AJAX请求
$.getJSON(uri)
.完成(功能(数据){
//成功时,“数据”包含产品列表。
对于(变量i=0;i
我得到401(未经授权)。我怎样才能解决这个问题。我知道我需要通过这个ajax调用传递一些cookie/session值。但我不知道怎么做。谁能给我举个例子解释一下吗


我的应用程序依赖于web Api项目,包括身份验证。我需要使用表单身份验证使web api应用程序安全。任何帮助都是值得赞赏的。谢谢

您不能通过使用cookie或会话对web api进行身份验证。您需要访问令牌才能执行此操作


按照本教程进行实现

您不能通过使用cookie或会话对web api进行身份验证。您需要访问令牌才能执行此操作


按照本教程进行实施

谢谢您的回复。我读了你们分享的第一篇文章。我不想在OAuth的帮助下注册用户。如何仅获取令牌并在MVC应用程序和Web API应用程序中用于安全API控制器操作方法调用。您可以实现自己的OAuthAuthorizationServerProvider,以生成访问令牌并为用户标识创建所有权,而不必以普通MVC方式(通过表单)进行身份验证,创建身份验证cookie和标识,然后在任何ApiController ajax方法中检查该标识?如果有什么问题-采取适当的措施。不需要把事情复杂化…这是Web Api而不是MVC。哈哈,谢谢你的回复。我读了你们分享的第一篇文章。我不想在OAuth的帮助下注册用户。如何仅获取令牌并在MVC应用程序和Web API应用程序中用于安全API控制器操作方法调用。您可以实现自己的OAuthAuthorizationServerProvider,以生成访问令牌并为用户标识创建所有权,而不必以普通MVC方式(通过表单)进行身份验证,创建身份验证cookie和标识,然后在任何ApiController ajax方法中检查该标识?如果有什么问题-采取适当的措施。不需要把事情复杂化…这是Web Api而不是MVC。英雄联盟
$(document).ready(function () {
  // Send an AJAX request
  $.getJSON(uri)
      .done(function (data) {
        // On success, 'data' contains a list of products.

          for (var i = 0; i < data.$values.length; i++)
          {      


             }
    })
    .fail(function() {
        console.log( "error" )});


});