我是这个网络开发领域的新手,由于我已经使用C#编程一段时间了,我决定尝试一下ASP.NET。
一切似乎都很容易和合作!路线,控制器,视图(Razor视图引擎太棒了)......直到我遇到身份验证。
有许多关于身份的教程(和文档),说它很神奇,它是多么脱钩,它有多可扩展,但我仍然觉得它是一个黑盒子。
我努力使用一个包含几列的简单表来创建一个超级简单的身份验证系统:
CREATE TABLE Users
(
[Id] INT NOT NULL PRIMARY KEY IDENTITY(1,1),
[FirstName] NVARCHAR(25) NOT NULL,
[LastName] NVARCHAR(25) NOT NULL,
[Email] VARCHAR(100) NOT NULL UNIQUE,
[Password] VARCHAR(100) NOT NULL
);
我想做的就是创建一个系统,用户可以在其中输入他的电子邮件和密码,我会显示一条简单的消息"欢迎[名字]!"。
但这似乎与ASP.NET身份相当复杂。每个人(包括文档本身)都在使用和滥用Entity Framework和SQL Server,使用IdentityDbContext等内置模型,你可以获得许多表(AspNetUsers,AspNetRoles等)和列,它们没有任何用处或者这意味着我的目的和它的意义!我觉得整个社区都是这样做的(相同的模型,相同的数据库模式,相同的一切),他们对此感到满意。
具有可扩展和分离的所有魅力,我真的能够扩展ASP.NET身份并构建一个简单的登录和注册系统吗?我真的能够做我想做的事吗?
或者我被迫使用IdentityDbContext,并使用所有这些表和列,使用EntityFramework和SQL Server,角色,声明,双因素身份验证? (因为[可能]安全标准)。
不要误会我的意思,我只是想了解这个系统,但它看起来很复杂,我觉得我已经被这个规则所束缚(如果我真的这么做了被迫使用这一切,为什么会这样呢?是不是因为安全标准?)。