我在同一个解决方案中有一个MVC和一个Web API项目,在MVC项目中我有一个非常小的管理区域,用登录名和密码保护(仅供一个用户使用)。在这个区域,我使用API调用获取clinet端的数据。
这是我的登录功能:
public ActionResult SubmitLogin(string UserName, string Password)
{
if (ModelState.IsValid)
{
if (UserName == "xxxxx" && Password == "yyyyy")
{
FormsAuthentication.SetAuthCookie(UserName, true);
return RedirectToAction("Index", @"Admin/Users");
}
}
var errors = (from value in ModelState.Values
from error in value.Errors
select error.ErrorMessage).ToList();
if (errors.Count == 0)
{
errors.Add("UserName or Password are incorrect");
}
ViewBag.Message = errors;
return View("Index");
}
登录表单工作正常,问题在于API调用,我的API控制器是[Authorize]
但是当我提出请求时:
self.getUsers = function (callback) {
$.get("../MySite.API/Users/GetUsers/", callback);
}
我收到401错误。
我知道我必须以某种方式向AuthCookie
发送AJAX请求,但我不确定如何。
任何帮助都将不胜感激。