Asp.net mvc 如何向web API发送经过身份验证的ajax调用
我有一个Web Api应用程序,它有以下问题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
[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" )});
});