Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.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
C# 没有实体框架的ASP.NET标识_C#_Asp.net_.net_Asp.net Mvc_Asp.net Identity - Fatal编程技术网

C# 没有实体框架的ASP.NET标识

C# 没有实体框架的ASP.NET标识,c#,asp.net,.net,asp.net-mvc,asp.net-identity,C#,Asp.net,.net,Asp.net Mvc,Asp.net Identity,是否可以在不使用实体框架的情况下使用新的ASP.NET标识,而使用您自己的方法 我有一个MVC项目,它使用普通的ADO.NET进行数据访问。我想实现ASP.NET标识,但我想继续使用ADO.NET和存储过程。这就是我选择的方式。我对自己也有类似的要求,并且实现了ASP.NET Identity framework的纯SQL Server版本 我首先创建了一个示例项目(使用实体框架),然后观察它创建的表。然后我将它们移植到一个VisualStudioSQL项目中 接下来,我提供了关于哪些方法需要实

是否可以在不使用实体框架的情况下使用新的ASP.NET标识,而使用您自己的方法


我有一个MVC项目,它使用普通的ADO.NET进行数据访问。我想实现ASP.NET标识,但我想继续使用ADO.NET和存储过程。这就是我选择的方式。

我对自己也有类似的要求,并且实现了ASP.NET Identity framework的纯SQL Server版本

我首先创建了一个示例项目(使用实体框架),然后观察它创建的表。然后我将它们移植到一个VisualStudioSQL项目中

接下来,我提供了关于哪些方法需要实现以及哪些方法与数据库交互的指导(注意:并非商店中的所有方法都需要/应该)。链接上的代码是针对MySQL的,但让我很好地理解了如何实现等

我仍然拥有使用Sql为ASP.NETIdentity框架编写的代码。所以如果我周末有时间的话,我会看看它的状态有多好,可能会上传到github,并在这里用链接更新


但同时,使用链接-它也提供了良好的学习体验

我正在使用Asp.Net Identity 2.2.1。 我实现这一点的方式是创建自己的用户:

public class MyUser : IUser {...}
然后创建我自己的UserStore: (实现您实现的接口所需的所有方法,并在这些方法上使用您的数据访问来拉/插入数据。例如,我创建了另一个dal类,用于访问数据库,我在我的用户存储中提供了一个方法的示例,但这与您实现的所有其他方法的想法相同)

然后在我的UserManager上,我将用户存储设置为:

public MyUser FindByUsername(string username)
{
    //pull user from the database however you want to based on the username, 
    //in my case here is where I used Dapper to query the db and return the User object with the data on it, but you can do it however you want.

    return myUser; //object with data on it
}
public UserManager() : base(new MyUserStore())
{
    //anything else you need on the constructor
}
注意: 并非MyUserStore上的所有方法都需要访问数据库,因为其中许多方法调用FindUser。。。方法或UpdateUser方法。例如:

public Task<int> IncrementAccessFailedCountAsync(MyUser user)
{
    //here I just updated the user object as I know that UpdateAsync() method will be called later.
    return Task.FromResult<int>(++user.FailedAttempts); 
}
public Task IncrementAccessFailedCountAsync(MyUser)
{
//这里我刚刚更新了user对象,因为我知道UpdateAsync()方法稍后将被调用。
返回Task.FromResult(++用户.FailedAttempts);
}

这是一个很好的工作示例(MVC 6)和ASP.NET 5 Identity(>=v3)框架的实现库,没有MongoDB.Driver(>=v2.1.0)的实体框架。你上传了你的版本吗?你能分享代码
ApplicationUserManager
ApplicationSignInManager
吗。我实现了
MyUserStore
,但在实现上述两个类时遇到了问题。我也在使用dapper。
ApplicationUserManager
公共类ApplicationUserManager:UserManager{public ApplicationUserManager():base(new MyUserStore()){…}
在构造函数上,必须将UserStore设置为实现的参数,在这种情况下,
MyUserStore
。我认为这是应用程序用户管理器中唯一重要的部分,在这里添加太长了;但我剩下的只是PasswordValidator、dataProtectionProvider和EmailService的配置,但这与模板代码相同,您不需要对ApplicationUserManager进行太多更改。因为访问数据的代码是UserStore上的代码,所以这就是您的实现
public Task<int> IncrementAccessFailedCountAsync(MyUser user)
{
    //here I just updated the user object as I know that UpdateAsync() method will be called later.
    return Task.FromResult<int>(++user.FailedAttempts); 
}