我需要将Asp.Net最新的MVC版本与现有数据库集成,该数据库还有一个String Address列表dbo.AspNetUsers
我需要创建一个ApplicationUser具有属性Address 的实例.
知道怎么做吗?
我正在学习MVC5身份认证,并在www.asp.net上阅读材料.我在这里有几个问题.
如果我想使用身份验证,是否有理由不使用MVC模板?或者是否有理由使用空模板?MVC模板还提供引导程序.
我创建了一个数据库,我想先进行数据库开发.如果我使用MVC模板,将在项目文件夹下创建凭据数据库.如何合并两个数据库,或者我应该只使用两个数据库?
如果我的问题很愚蠢,请忽略我或告诉我先读什么.我知道社区中的人很好但很关键.谢谢
我是一名新手程序员,在学习我的第一个代码项目时学习.我从MVC 4开始,并设法让CRUD为单个实体工作.我决定接下来尝试解决安全问题.当Visual Studio搭建我的MVC 4项目时,它添加了一个帐户模型,视图和控制器.我已经使用此处描述的过程将我的项目升级到MVC 5和EF 6 .我现在想用MVC 5 scaffolded Identity模型,视图,控制器替换MVC 4安全代码.这可能吗?如果是这样,怎么样?
我正在尝试重命名ASP.net Identity 2.0生成的默认表名.我在stackoverflow上阅读了所有文章,问题和答案,但我仍然得到相同的错误.
我将表重命名为Roles,UserClaims,Logins,UserRoles和Users.我还将应用程序dbcontext更改为以下内容
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("DefaultConnection", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
protected override void OnModelCreating(System.Data.Entity.DbModelBuilder modelBuilder) {
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<IdentityUser>().ToTable("Users", "dbo");
modelBuilder.Entity<IdentityRole>().ToTable("Roles", "dbo");
modelBuilder.Entity<IdentityUserRole>().ToTable("UserRoles", "dbo");
modelBuilder.Entity<IdentityUserClaim>().ToTable("UserClaims", "dbo");
modelBuilder.Entity<IdentityUserLogin>().ToTable("UserLogins", "dbo");
}
}
Run Code Online (Sandbox Code Playgroud)
但我一直得到Invalid object name 'dbo.AspNetUsers'.错误,我不知道为什么它仍然试图首先找到AspNetUsers而不仅仅是用户,虽然我做了上述更改.完全绝望了.

数据库以及具有新表名的相同列:

和SQL数据库项目:

我正在将我的旧网站从PHP迁移到C#MVC.我想使用微软的Identity设置,因为它看起来很整洁.
我已经使用数据库优先实体框架设置了我的解决方案.我有所需的表(Users,UserRoles,UserLogins,UserClaims)和所有外键设置.
我已经看了几种方法来设置IdentityUser已经使用过MySqlDatabase和代码优先的方法,但是当我已经有一个已建立的数据库(包括现有的Users表)时,我不确定如何实现我的IdentityUser .
我希望我使用我已经创建的Entity Framework类IdentityUser来操纵我Users.有没有办法让我的User模型在EF中派生IdentityUser并匹配我现有的数据库?
我正在努力的一件事是我的数据库不使用string值作为主键,它使用自动递增int.
目前我有以下课程:
// Copyright (c) KriaSoft, LLC. All rights reserved. See LICENSE.txt in the project root for license information.
namespace KriaSoft.AspNet.Identity.EntityFramework
{
using Microsoft.AspNet.Identity;
using System;
public partial class IdentityUser : IUser<int>
{
/// <summary>
/// Default constructor
/// </summary>
public IdentityUser()
{
Id = Guid.NewGuid().ToString();
}
/// <summary>
/// Constructor that takes user …Run Code Online (Sandbox Code Playgroud) 我有一个使用EntityFramework edmx模型的应用程序,我希望能够为我的Identity类和实体类使用相同的dbContext.有人提出了类似查询,但我无法让它们兼容.
我已经改变了EF上下文类中的类定义,如下所示
public partial class MyDbContext : IdentityDbContext<AspNetUser>
{
}
Run Code Online (Sandbox Code Playgroud)
和我的身份用户一样
public partial class AspNetUser : IdentityUser
{
}
Run Code Online (Sandbox Code Playgroud)
但我尝试登录或注册时收到错误
实体类型AspNetUser不是当前上下文的模型的一部分
c# entity-framework visual-studio-2013 asp.net-mvc-5 asp.net-identity
我正在将SaaS应用程序从Classic ASP迁移到.NET MVC5,并将使用EF6 Database First.最终用户的登录表单可由每个租户自定义(在他们自己的子域上,但指向同一个Web应用程序).我们希望使用现有的数据库架构和新的身份验证和授权过滤器.
例如,一个租户上的用户可以通过输入他们的名字,姓氏和我们系统生成的代码来登录.另一个租户的用户可以通过输入他们的电子邮件地址和密码来登录.此外,每个租户都有一个单独的管理员登录名,该登录名使用用户名和密码.另一个租户可以对远程AD服务器使用LDAP身份验证.
有自定义身份验证的最佳实践方法吗?
几乎每篇文章都提出了不同的实现方法:简单地设置FormsAuthentication.SetAuthCookie,使用自定义OWIN提供程序,覆盖AuthorizeAttribute等.
在Classic ASP中,我们查询数据库以找出该租户的登录类型,在登录屏幕上显示相应的字段然后在回发后,检查字段是否与数据库中的内容匹配,然后适当地设置会话变量检查每个页面请求.
谢谢
像其他几个一样,我试图实现ASP.NET Identity Model First.一旦你尝试,错误,气氛,搜索和解决,一切都很好.我想.
也可以看看:
行动方案,总结如下:
我已经解决了出现的问题(直到最新一步).为了完整起见,我将描述它们.
使用默认的标识上下文
一切正常:表格创建,我可以注册和登录.然而,这不是我想要的情况:我想使用Model First方法.
使用EF连接字符串使用自定义的第一个上下文模型
修改CreatePerOwinContext,使其使用我的Model First上下文:
public void ConfigureAuth(IAppBuilder app)
{
app.CreatePerOwinContext(CustomModelFirstDbContext.Create);
Run Code Online (Sandbox Code Playgroud)
和ApplicationUserManager一起使用Model First上下文:
public static ApplicationUserManager Create(IdentityFactoryOptions<ApplicationUserManager> options, IOwinContext context)
{
var manager = new ApplicationUserManager(new UserStore<ApplicationUser>(context.Get<CustomModelFirstDbContext>()));
Run Code Online (Sandbox Code Playgroud)
结果是:
'/'应用程序中的服务器错误.
实体类型ApplicationUser不是当前上下文的模型的一部分.
描述:执行当前Web请求期间发生未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.
异常详细信息:System.InvalidOperationException:实体类型ApplicationUser不是当前上下文的模型的一部分.
来源错误:
在执行当前Web请求期间生成了未处理的异常.可以使用下面的异常堆栈跟踪来识别有关异常的起源和位置的信息.
堆栈跟踪:[InvalidOperationException:实体类型ApplicationUser不是当前上下文的模型的一部分.]
将"普通"连接字符串与自定义的Model First上下文一起使用
WebApplication1.dll中出现"System.Data.Entity.Infrastructure.UnintentionalCodeFirstException"类型的异常,但未在用户代码中处理
附加信息:如果在Code First模式下使用,则使用T4模板为Database First和Model First开发生成的代码可能无法正常工作.要继续使用Database First或Model First,请确保在执行应用程序的配置文件中指定了Entity Framework连接字符串.要使用从Database First或Model First生成的这些类,使用Code First添加任何其他配置,使用属性或DbModelBuilder API,然后删除引发此异常的代码.
所以,我认为我需要默认的Identity上下文来使用Identity,并使用自定义的Model First上下文来处理其他所有内容.不是首选的解决方案,但可以接受.
正常项目和快速健全性检查测试项目都与AspNetUserRoles表具有相同的问题.这是一个联结表,当在EF设计器中导入它时,一切正常.你不会看到它,因为它是一个多对多的关系,当检查AspNetRole和AspNetUser之间的关联时它看起来不错.
设计师和制图细节:

但是,在生成sql脚本时,EF会修改密钥. …
entity-framework ef-model-first asp.net-mvc-5 asp.net-identity asp.net-identity-2
有很多样本在线使用OWIN/Katana根据用户名/密码组合在数据库中查找用户并生成索赔主体,例如...
var userManager = context.OwinContext.GetUserManager<ApplicationUserManager>();
ApplicationUser user = await userManager.FindAsync(context.UserName, context.Password);
// generate claims here...
Run Code Online (Sandbox Code Playgroud)
如果您正在创建一个新的应用程序并希望实体框架执行脏工作,那就没问题.但是,我有一个八年历史的单片网站刚刚更新,使用基于声明的身份验证.我们的数据库命中是通过DAL/SQL手动完成的,然后从那里生成ClaimsIdentity.
有些人建议OWIN比我们的手动方法更容易使用,但我想从那些使用它的人那里得到一些输入.
是否可以根据凭据更改UserManager工厂查找用户的方式?或者,我错过了另一种方法吗?我在网上找到的所有样本似乎都使用样板方法让Entity Framework创建数据库并管理搜索.
我希望按照我在这里找到的例子来实现OWIN:http: //www.asp.net/web-api/overview/security/individual-accounts-in-web-api
但是,由于这种工作方式对我来说是新的,特别是使用我自己创建的数据库,我想要一些指导.我可以毫无问题地提交我的注册请求.
帖子带我到AccountController:
[AllowAnonymous]
[Route("Register")]
public async Task<IHttpActionResult> Register(RegisterBindingModel model)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
try {
var email = model.Email;
var password = model.Password;
var user = new users() {
Email = email,
PasswordHash = password,
Password = password
};
IdentityResult result = await UserManager.CreateAsync(user, model.Password);
if (!result.Succeeded)
{
return GetErrorResult(result);
}
return Ok();
}
catch(Exception ex)
{
throw;
}
}
Run Code Online (Sandbox Code Playgroud)
这会触发以下代码:
public ApplicationUserManager UserManager
{
get
{
return _userManager ?? Request.GetOwinContext().GetUserManager<ApplicationUserManager>();
}
private …Run Code Online (Sandbox Code Playgroud) 我目前正在使用ASP .Net MVC 5 Identity framework我的简单MVC 5应用程序来管理用户身份验证。我的数据库包含 5 个与身份相关的表:
dbo.AspNetUsers
dbo.AspNetRoles
dbo.AspNetUserRoles
dbo.AspNetUserClaims
dbo.AspNetUserLogins
Run Code Online (Sandbox Code Playgroud)
基本上,我想要实现的是删除AspNetRoles, AspNetUserRoles(这只是一个关系表)和AspNetUserClaims。并只留下:
dbo.AspNetUsers
dbo.AspNetUserLogins
Run Code Online (Sandbox Code Playgroud)
因为我目前正在研究基于OAuth2.0的用户登录系统。我不需要角色。我想知道有关用户的信息是他是否登录。我的应用程序中没有经理、管理员或其他用户角色。如何从我的应用程序中删除它们,并且仍然能够使用身份框架进行用户授权/身份验证和 OAuth?首先这可能吗?
我当前的项目有两个数据库连接:
第一个用于IdentityModel并使用本地.mdf文件.第二个我在外部SQL Server上创建,并首先使用数据库导入.
现在我想在外部sql服务器上创建IdentityModel表,因此只使用一个连接/数据库.我更改了ApplicationDbContext以匹配web.config中的外部连接名称.
ApplicationDbContext
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext()
: base("SAMPLEEntities", throwIfV1Schema: false)
{
}
public static ApplicationDbContext Create()
{
return new ApplicationDbContext();
}
}
Run Code Online (Sandbox Code Playgroud)
Web.config文件
<add name="SAMPLEEntities" connectionString="metadata=res://*/Models.modelone.csdl|res://*/Models.modelone.ssdl|res://*/Models.modelone.msl;provider=System.Data.SqlClient;provider connection string="data source=thedatabase;initial catalog=SAMPLE;integrated security=True;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
Run Code Online (Sandbox Code Playgroud)
现在我认为会生成表格,但事实并非如此.当我尝试在软件包管理器控制台中进行手动更新时,我收到以下错误:
不支持从使用Database First或Model First创建的DbContext创建DbModelBuilder或编写EDMX.EDMX只能从不使用现有DbCompiledModel创建的Code First DbContext中获取.
我还尝试将本地.mdf文件导入到sql server中,这样我就可以复制表了,但是mdf文件是由VS 2015创建的,不会在SQL Server 2012中加载.
有关如何在外部SQL Server中生成/添加表的任何建议?
sql-server asp.net asp.net-mvc entity-framework asp.net-identity
asp.net-identity ×10
asp.net ×6
c# ×6
asp.net-mvc ×3
owin ×2
identity ×1
katana ×1
sql-server ×1
wif ×1