我已经搜索了一个小时,试图弄清楚为什么这不起作用。
我有一个带有WebAPI的ASP.Net MVC5应用程序。我正在尝试获取Request.GetOwinContext().Authentication,但是我似乎找不到如何包含GetOwinContext。下面是我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Mvc;
using System.Web.Security;
using TaskPro.Models;
namespace TaskPro.Controllers.api
{
public class AccountController : ApiController
{
[HttpPost]
[AllowAnonymous]
public ReturnStatus Login(LoginViewModel model)
{
if (ModelState.IsValid)
{
var ctx = Request.GetOwinContext(); // <-- Can't find this
return ReturnStatus.ReturnStatusSuccess();
}
return base.ReturnStatusErrorsFromModelState(ModelState);
}
}
}
据我所知,它应该是System.Net.Http的一部分,但我已经包含了它,它仍然没有解决。Ctrl-空格键也不提供任何智能感知选项。
这里我漏掉了什么?
发布于 2014-06-06 21:15:27
这些对我来说都不管用。我不得不将Nuget包与使用Identity创建的包进行比较,我发现这个Nuget包丢失了,它在添加时为我修复了这个问题
Microsoft.Owin.Host.SystemWeb
显然,您需要它才能使用ASP.NET请求管道在IIS上运行OWIN (没有它,您就完蛋了!)
发布于 2014-04-25 16:18:39
在WEB API中,您可以使用以下内容获取引用:
HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
它可以在Identity 2.0中工作
发布于 2014-09-07 07:30:26
您可能需要添加NuGet包Microsoft.Owin.Host.SystemWeb
才能做到这一点:
HttpContext.Current.GetOwinContext().GetUserManager<ApplicationUserManager>();
https://stackoverflow.com/questions/22598567
复制相似问题