C# 在WEB API 2中使用ApplicationSignInManager
我正在尝试通过Web API 2登录。我所做的是从MVC 5.2的AccountController复制一些代码,但是当我运行这段代码时,ApplicationSignInManager为C# 在WEB API 2中使用ApplicationSignInManager,c#,asp.net-mvc,C#,Asp.net Mvc,我正在尝试通过Web API 2登录。我所做的是从MVC 5.2的AccountController复制一些代码,但是当我运行这段代码时,ApplicationSignInManager为null,它会抛出一个异常 我在Github或ASP.NET上找不到任何示例项目 这是我的自定义UserController Web API [RoutePrefix("api/users")] public class UserController : ApiController { ... //
null
,它会抛出一个异常
我在Github或ASP.NET上找不到任何示例项目
这是我的自定义UserController Web API
[RoutePrefix("api/users")]
public class UserController : ApiController
{
... // Truncated for brevity
[Route("login")]
[HttpPost]
public HttpResponseMessage Login(LoginViewModel model)
{
if (!ModelState.IsValid)
{
return new HttpResponseMessage(HttpStatusCode.Forbidden);
}
var signinManager = Request.GetOwinContext().Get<ApplicationSignInManager>();
// This doesn't count login failures towards account lockout
// To enable password failures to trigger account lockout, change to shouldLockout: true
SignInStatus result =
signinManager.PasswordSignIn(model.Email, model.Password, model.RememberMe, false);
switch (result)
{
case SignInStatus.Success:
return new HttpResponseMessage(HttpStatusCode.OK);
default:
return new HttpResponseMessage(HttpStatusCode.Forbidden);
}
}
}
[RoutePrefix(“api/用户”)]
公共类用户控制器:ApiController
{
…//为了简洁起见
[路线(“登录”)]
[HttpPost]
公共HttpResponseMessage登录(LoginView模型)
{
如果(!ModelState.IsValid)
{
返回新的HttpResponseMessage(HttpStatusCode.Forbidden);
}
var signinManager=Request.GetOwinContext().Get();
//这不会将登录失败计入帐户锁定
//要使密码失败触发帐户锁定,请更改为shouldLockout:true
信号状态结果=
signinManager.PasswordSignIn(model.Email、model.Password、model.RememberMe、false);
开关(结果)
{
案例标志状态成功:
返回新的HttpResponseMessage(HttpStatusCode.OK);
违约:
返回新的HttpResponseMessage(HttpStatusCode.Forbidden);
}
}
}
我做错了什么?HResult=-2147467261 Message=值不能为空。参数名称:manager Source=MicrosoftSystem.ArgumentNullException未由用户代码处理。AspNet.Identity.Owin ParamName=manager StackTrace:at Microsoft.AspNet.Identity.Owin.SignInManager.PasswordSignIn[TUser,TKey](SignInManager`2 manager,字符串用户名,字符串密码,布尔值isPersistent,布尔值shouldLockout)@你解决了这个问题吗?我遇到了同样的问题我也遇到了同样的问题:-(解决方案是使用OWIN。使用本教程进行测试->