我是ASP.NET MVC 5和WebAPI 2技术的新手。我目前正在为我的桌面应用程序开发Web服务。
我在asp.net mvc 5 web API 2中开发了具有个人用户帐户身份验证的Web服务。我参考链接: - " http://vod.com.ng/en/video/KyxcLfz_CW8/8-Authenticated-WebAPI-ASPNET-MVC-5-Fundamentals-5-WebAPI-2"。它帮助了我,但我需要在项目中添加图层,即WEB和CORE。
我转移了#34; AccountBindingModels.cs"和" AccountViewModels.cs"从WEB中的Models文件夹到CORE中的POCO文件夹,运行程序后我收到错误" POST / api / account / register 500(内部服务器错误)"和"尝试创建类型为' AccountController'的控制器时发生错误。 &#34 ;.
我想添加将由个人用户帐户验证的api控制器和模型类。请帮忙。让我知道你还需要知道什么。提前谢谢。
来自 UnityConfig.cs 文件的代码
public static void RegisterTypes(IUnityContainer container)
{
container.RegisterType(typeof(IRepository<>), typeof(Repository<>));
container.RegisterType(typeof(DbContext), typeof(DataContext));
}
控制器
namespace DesktopApp.Controllers
{
public class StudentLoginController : ApiController
{
private IRepository<StudentLogin> _StudentLoginRepository;
public StudentLoginController(IRepository<StudentLogin> StudentLoginRepository)
{
_StudentLoginRepository = StudentLoginRepository;
}
[HttpPost]
[Route("api/StudentLogin/Post")]
public StudentLogin Post(StudentLogin loginData)
{
var studentLoginDetails = _StudentLoginRepository.GetAll().Where(p => p.studentName == loginData.studentName && p.studentPassword == loginData.studentPassword).FirstOrDefault<StudentLogin>();
return studentLoginDetails;
}
答案 0 :(得分:3)
通过创建默认的AccountController并删除参数化的AccountController解决了这个问题。
public UserManager<IdentityUser> UserManager { get; private set; }
public ISecureDataFormat<AuthenticationTicket> AccessTokenFormat { get; private set; }
public AccountController()
{
UserManager = Startup.UserManagerFactory();
AccessTokenFormat= Startup.OAuthOptions.AccessTokenFormat;
}