Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 5 具有个人用户帐户身份验证的ASP.NET MVC 5 WEB API_Asp.net Mvc 5_Asp.net Web Api2 - Fatal编程技术网

Asp.net mvc 5 具有个人用户帐户身份验证的ASP.NET MVC 5 WEB API

Asp.net mvc 5 具有个人用户帐户身份验证的ASP.NET MVC 5 WEB API,asp.net-mvc-5,asp.net-web-api2,Asp.net Mvc 5,Asp.net Web Api2,我不熟悉ASP.NETMVC5和WebAPI 2技术。我目前正在为我的桌面应用程序开发一个web服务 我在asp.net mvc 5 web API 2中开发了具有个人用户帐户身份验证的web服务。我指的是链接:-“”。它帮助了我,但我需要在项目中添加层,即WEB和CORE 运行程序后,我将“AccountBindingModels.cs”和“AccountViewModels.cs”从WEB中的Models文件夹转移到CORE中的POCO文件夹,并收到错误“POST/api/account/r

我不熟悉ASP.NETMVC5和WebAPI 2技术。我目前正在为我的桌面应用程序开发一个web服务

我在asp.net mvc 5 web API 2中开发了具有个人用户帐户身份验证的web服务。我指的是链接:-“”。它帮助了我,但我需要在项目中添加层,即WEB和CORE

运行程序后,我将“AccountBindingModels.cs”和“AccountViewModels.cs”从WEB中的Models文件夹转移到CORE中的POCO文件夹,并收到错误“POST/api/account/register 500(内部服务器错误)”和“尝试创建“AccountController”类型的控制器时出错”

我想添加api控制器和模型类,它们将由单个用户帐户进行身份验证。请帮忙。让我知道你还需要知道什么。提前谢谢

来自UnityConfig.cs文件的代码

public static void RegisterTypes(IUnityContainer container)
{
  container.RegisterType(typeof(IRepository<>), typeof(Repository<>));

  container.RegisterType(typeof(DbContext), typeof(DataContext));
}  
公共静态无效注册表类型(IUnityContainer容器)
{
RegisterType(typeof(IRepository),typeof(Repository));
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;
    }     
命名空间DesktopApp.Controllers
{
公共类学生登录控制器:ApiController
{
私人IRepository(u StudentLoginRepository);;
公共学生登录管理员(IRepository StudentLoginRepository)
{
_StudentLoginRepository=StudentLoginRepository;
}
[HttpPost]
[路线(“api/StudentLogin/Post”)]
公共学生登录帖子(学生登录登录数据)
{
var studentLoginDetails=_StudentLoginRepository.GetAll()。其中(p=>p.studentName==loginData.studentName&&p.studentPassword==loginData.studentPassword)。FirstOrDefault();
返回学生登录详细信息;
}     

通过创建默认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;
    }
public UserManager UserManager{get;private set;}
公共ISecureDataFormat AccessTokenFormat{get;private set;}
公共账户控制员()
{
UserManager=Startup.UserManagerFactory();
AccessTokenFormat=Startup.OAuthOptions.AccessTokenFormat;
}

你的问题有点模糊。你能发布适当的代码片段吗?顺便说一句,我不会将视图模型移动到另一层,因为它们与UI相关,所以最好将它们留在这一层。解决依赖关系的过程是什么样的?如果看不到实际的注入,很难理解说出了什么问题。也许对你有点帮助。谢谢你的帮助。是的,我将视图模型移到了同一层。但是我在另一层Core->POCO中添加了模型类。我正在使用Unity的依赖项注入。我认为在解决控制器的依赖项方面存在任何问题。我认为我已经添加了手动依赖项恢复控制器的lver。我添加了上面的图像。我一直在解决userManager控制器和我的web api控制器之间的依赖关系。我添加了上面的代码。您的实际控制器看起来如何(尤其是执行注入的构造函数)?