在MVC下,创建一个MVC项目,并且选择为internet应用,系统会自带了用户验证的功能。但这个验证功能怎么和自己的业务表联系起来,刚学的时候,费了一些功夫。
首先,创建项目成功后,打开web.config文件,可以看到节点:<connectionStrings>,自带了一个name="DefaultConnection" 的联接。可以在这个联接的基础上修改,也可以新增,此处新增一个联接。
<add name="UserConnection" connectionString="Data Source=192.168.1.88;Initial Catalog=AIS;user id=sa;password=***;" providerName="System.Data.SqlClient" />
新增完成联接后,保存web.config文件。
然后,在项目下,找到 Filters文件夹,点开后可以看到一个文件: InitializeSimpleMembershipAttribute.cs。
打开此文件:
找到 WebSecurity.InitializeDatabaseConnection,这里就是设置数据表的地方。
("UserConnection", "bas_user_tb", "id_user", "user_name", autoCreateTables: false);
第一个参数是联接串,刚在web.config里设置的。
第二个参数是数据表
第三个参数是用户ID,关键字
第四个参数是用户名,系统根据这个名称进行验证。
第五个参数是要不要创建新表,由于我的表已存在,所以参数是false。因为这个表是你创建的,所以除了上面参数里的字段外,其他的,你想加什么字段都可以。
然后,再增加以下几个表:
webpages_Membership
CREATE TABLE [webpages_Membership](
[UserId] [int] NOT NULL,
[CreateDate] [datetime] NULL,
[ConfirmationToken] [nvarchar](128) NULL,
[IsConfirmed] [bit] NULL,
[LastPasswordFailureDate] [datetime] NULL,
[PasswordFailuresSinceLastSuccess] [int] NOT NULL,
[Password] [nvarchar](128) NOT NULL,
[PasswordChangedDate] [datetime] NULL,
[PasswordSalt] [nvarchar](128) NOT NULL,
[PasswordVerificationToken] [nvarchar](128) NULL,
[PasswordVerificationTokenExpirationDate] [datetime] NULL,
PRIMARY KEY CLUSTERED
(
[UserId] ASC
)
其他几个表,如角色,角色和用户关系 ,暂时还没有用到,先可以不加。
然后,就可以运行了。