是否可以在不使用asp.net身份的情况下验证Web API?
我在同一个解决方案中有一个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
但我不确定如何 .
任何帮助,将不胜感激 .
1 回答
在执行操作之前,您可以创建自己的
AuthorizationFilter
或ActionFilter
来检查用户的身份验证和授权 .这只是一个如何使用
ActionFilter
完成的示例 . 您可以根据需要设计自己的: