Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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
Entity framework 浏览数据库EFASP.Net核心MVC_Entity Framework_Asp.net Core - Fatal编程技术网

Entity framework 浏览数据库EFASP.Net核心MVC

Entity framework 浏览数据库EFASP.Net核心MVC,entity-framework,asp.net-core,Entity Framework,Asp.net Core,我正在使用上述和VisualStudio2016社区玩一个web应用程序。我仍然使用个人用户帐户作为身份验证的默认项目。因此,它围绕身份验证构建了所有视图和模型,我可以注册帐户并登录。我现在想在默认值中添加一些属性,并遇到一些未知项 第一个问题是关于编写一些非默认属性。我已经研究了如何编写默认属性(email和phone),UserManager库类中实际上有一些方法来更新这些属性 public virtual Task<IdentityResult> SetEmailAsync(T

我正在使用上述和VisualStudio2016社区玩一个web应用程序。我仍然使用个人用户帐户作为身份验证的默认项目。因此,它围绕身份验证构建了所有视图和模型,我可以注册帐户并登录。我现在想在默认值中添加一些属性,并遇到一些未知项

第一个问题是关于编写一些非默认属性。我已经研究了如何编写默认属性(email和phone),UserManager库类中实际上有一些方法来更新这些属性

public virtual Task<IdentityResult> SetEmailAsync(TUser user, string email);
and
public virtual Task<IdentityResult> SetPhoneNumberAsync(TUser user, string phoneNumber);

我没有安装SQL server,如果这很重要的话,只是安装了与VS一起安装的SQL stuff。在其他项目中,我只是转到服务器资源管理器,我的数据库显示在“数据连接”下。我曾尝试添加数据连接,但当我添加数据连接时,我添加了服务器名称(localdb)——我也尝试了在没有括号的情况下添加服务器名称——然后当我尝试选择数据库名称时,它会抛出连接错误。我还尝试在webapp打开时执行此操作,方法是断开调试器的连接,并尝试相同的进程,以防它只在运行时存在,但情况是相同的。有什么想法吗?

显然,我不能为自己的属性添加方法,比如SetTagLineAsync…

您可以添加自己从
UserManager
类继承的方法

UpdateAsync与SetXXXAsync方法的比较

SetXXXAsync方法更复杂,内部有额外的逻辑。例如
SetEmailAsync
SetPhoneAsync
不仅设置了
Email
Phone
属性/列,还设置了
emailconfirm=false
phoneconfirm=false
。两者都在设置新的安全戳,用于指示用户是否更改了配置文件。在这种情况下,他/她需要在(其他)设备上执行新登录(拒绝在更改发生之前设置的cookie)。这是一个有用的安全特性。如果您更改密码,这将非常糟糕,但使用旧密码设置的cookies仍然可以工作

    public virtual async Task<IdentityResult> SetPhoneNumberAsync(TUser user, string phoneNumber)
    {
        ThrowIfDisposed();
        var store = GetPhoneNumberStore();
        if (user == null)
        {
            throw new ArgumentNullException(nameof(user));
        }

        await store.SetPhoneNumberAsync(user, phoneNumber, CancellationToken);
        await store.SetPhoneNumberConfirmedAsync(user, false, CancellationToken);
        await UpdateSecurityStampInternal(user);
        return await UpdateUserAsync(user);
    }
公共虚拟异步任务SetPhoneNumberAsync(TUser用户,字符串phoneNumber)
{
ThrowIfDisposed();
var store=GetPhoneNumberStore();
if(user==null)
{
抛出新ArgumentNullException(nameof(user));
}
wait store.SetPhoneNumberAsync(用户、电话号码、取消令牌);
等待存储。SetPhoneNumber确认同步(用户、错误、取消令牌);
等待更新安全STAMPINTERNAL(用户);
返回等待更新同步(用户);
}
如何查看项目数据库?

您必须使用
(localdb)\MSSQLLocalDB
作为服务器名称

LocalDb是开发数据库,可能在Visual Studio安装期间安装

相关链接:

"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=aspnet-MyApp-3B07911E-A6DD-4B3E-A533-57B04E37B791;Trusted_Connection=True;MultipleActiveResultSets=true"
    public virtual async Task<IdentityResult> SetPhoneNumberAsync(TUser user, string phoneNumber)
    {
        ThrowIfDisposed();
        var store = GetPhoneNumberStore();
        if (user == null)
        {
            throw new ArgumentNullException(nameof(user));
        }

        await store.SetPhoneNumberAsync(user, phoneNumber, CancellationToken);
        await store.SetPhoneNumberConfirmedAsync(user, false, CancellationToken);
        await UpdateSecurityStampInternal(user);
        return await UpdateUserAsync(user);
    }