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