将IdentityModels移动到DataAccessLayer

时间:2018-03-17 03:13:49

标签: c# asp.net-mvc asp.net-mvc-5 asp.net-identity

我尝试使用C#和MVC 5创建我的第一个3层应用程序。我使用Identity 2作为我的身份验证系统,并使用此命令安装它:

Install-Package Microsoft.Aspnet.Identity.samples _pre

我在网站上找到了一篇我需要的文章和问题。我像这篇文章一步一步地做了。 Here is Article

我在我的项目中添加了一个类库,并在这个类库中移动了我的模型,但我在IdentityConfig.cs Startup.Auth.cs和Manage controller中有3个错误

user.GenerateUserIdentityAsync(UserManager));

错误详情在这里:

  

CS7036没有给出符合所需形式参数' authenticationType' ' ApplicationUser.GenerateUserIdentityAsync(UserManager,string)' PresentationLayer D:\ Projects \ Divar \ PresentationLayer \ App_Start \ IdentityConfig.cs 148 Active

当我按住Ctrl +单击GenerateUserIdentityAsync时,我移动到DataAccessLayer和这个方法。

public async Task<ClaimsIdentity> GenerateUserIdentityAsync(UserManager<ApplicationUser> manager, string authenticationType)
    {
        // Note the authenticationType must match the one defined in CookieAuthenticationOptions.AuthenticationType
        var userIdentity = await manager.CreateIdentityAsync(this, authenticationType);
        // Add custom user claims here
        return userIdentity;
    }

此外,我将IdentityModels.cs名称空间更改为DataAccessLayer,但我不知道为什么我再次出错,

这是我的错误图片 enter image description here

1 个答案:

答案 0 :(得分:0)

您需要提供authenticationType。 user.GenerateUserIdentityAsync没有超载,带有1个参数。

应该更像

string a;
user.GenerateUserIdentityAsync(UserManager, a);

只是一个小小的提示......我之前已经完成了同样的任务,并且通过查看集成智能身份的不同ORM,我获得了很多价值。也许你不会,但我认为这是最初帮助我的那个......

https://github.com/JudahGabriel/RavenDB.AspNet.Identity