我使用默认的 ASP.NET MVC4 Web 应用程序模板和 Visual Studio 在过滤器目录中创建InitializeSimpleMembershipAttribute并像这样创建帐户控制器:
[Authorize]
[InitializeSimpleMembership]
public class AccountController : Controller
{
/* Some Default Actions like Login, LogOff, Register, ...*/
}
我尝试制作 AccountController WebAPI,我的代码是:
[Authorize]
[InitializeSimpleMembership]
public class APIAccountController : ApiController
{
[System.Web.Http.AcceptVerbs("GET", "POST")]
[System.Web.Http.HttpGet]
[System.Web.Http.HttpPost]
[System.Web.Http.AllowAnonymous]
[System.Web.Mvc.ValidateAntiForgeryToken]
public string Login(string UserName, string Password, bool RememberMe)
{
if (WebSecurity.Login(UserName, Password, persistCookie: RememberMe))
{
return "OK";
}
return "Failed";
}
}
现在,当我调用 api 时,它在这一行中断:
如果(WebSecurity.Login(用户名,密码,persistCookie:RememberMe))
并说:在调用“WebSecurity”类的任何其他方法之前,必须先调用“WebSecurity.InitializeDatabaseConnection”方法。
我在InitializeSimpleMembershipAttribute中运行它,并且 webapi 控制器与控制器相同。
为什么属性不在 WebAPI 中运行?