日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mvc identity连接mysql_asp.net MVC5,如何使用mysql数据库,使用MVC框架中自带的identity用户验证体系...

發布時間:2023/12/4 数据库 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mvc identity连接mysql_asp.net MVC5,如何使用mysql数据库,使用MVC框架中自带的identity用户验证体系... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

問題如題

現在很多時候,即使是.net項目,我們用的數據庫也未必時是 SQL Server了。

但很多VS 自帶的框架(如MVC 、WebAPI等框架)中的示例自帶的仍然是默認Sql Server的,而且并不一定好改成別的數據庫。這有時候就很苦惱。

比如.net MVC框架中自帶的一套用戶體系,含有用戶登錄注冊權限角色等一大堆的功能。如果我們開始一個新項目,不得不使用Sql Server以外的數據庫的化,而且又沒有足夠的成本來重新開發一套權限管理機制的話,那我們要怎么辦呢?

自己倉促寫的通常又太low,也不怎么安全。

套用別的又很麻煩。

而實際上,這種情況在我的工作經歷中一直持續發生,到現在我也沒能成功地運用好VS .net框架中自帶的那一套權限體系,每次都自己開發,但又覺得有點low。

痛定思痛啊,這篇博文就是為了解決這個問題。

這里面提供兩種思路和方案。

經嘗試,就算我最終在web.config里面把mysql的配置好,項目可以啟動,但注冊和登錄等需要讀寫數據庫的時候還是會出錯。

原因很簡單,sql server的話,可以直接創建數據庫和表,畢竟是自家親兒子。

別的數據庫,比如mysql,就無法創建數據庫和表,也就失敗了。

table XXX not existed的錯誤提示很明顯了。

于是我就想到了一種低級一點的辦法,事實證明,好理解,也有效。

1.低級一點的。

手工按照.net框架里要的那樣,建好一個數據庫和表,以及對應字段。

如圖:

那么你又要問,到底是什么結構呢? 這多麻煩啊

我的辦法是:

用VS新建一個MVC項目,然后就簡單粗暴運行,注冊等。此時會發現已經有sql server數據庫和表生成了。

如圖

“視圖” – sql server對象管理器“

然后,

依次獲得到各個table的創建語句

然后就可以看到打開的sql文件里的類似如下的sql語句片段:

USE [aspnet-WebApplication4-20180326090819]

GO

/****** 對象: Table [dbo].[AspNetRoles] 腳本日期: 2018/3/27 11:46:34 ******/

SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE TABLE [dbo].[AspNetRoles] ( [Id] NVARCHAR (128) NOT NULL, [Name] NVARCHAR (256) NOT NULL );

GO

CREATE UNIQUE NONCLUSTERED INDEX [RoleNameIndex] ON [dbo].[AspNetRoles]([Name] ASC);

GO

ALTER TABLE [dbo].[AspNetRoles] ADD CONSTRAINT [PK_dbo.AspNetRoles] PRIMARY KEY CLUSTERED ([Id] ASC);

可以用來創建mysql中的表嗎?

機智哦

不過直接粘貼過去執行還是會報錯的,畢竟是不同的數據庫,數據類型、語法什么的還是有些不一樣。

我們就取其中的

CREATE TABLE [dbo].[AspNetRoles] ( [Id] NVARCHAR (128) NOT NULL, [Name] NVARCHAR (256) NOT NULL );

創建表的這句話去mysql中建表就行了。

再相應修改一下:

CREATE TABLE AspNetRoles ( Id VARCHAR (128) NOT NULL, Name VARCHAR (256) NOT NULL );

如上,我去掉了dbo,去掉了中括號,NVARCHAR改為VARCHAR。

然后在mysql中執行,真的就成功了。

所以,另外的幾個表,以此類推,在mysql中就可以得到幾個表,結構和字段與sql server中的都一致了。

這些我已經親測了,確實成功。

而且后續的運行,注冊,登錄等都可以成功。

不再贅述。

總之,這里算是耍了個滑頭。

但也算是解決了問題,畢竟能用。

但上述方法真的好勉強啊。

問題的關鍵其實很簡單,就是在現有代碼條件下,mysql沒法直接就創建了mysql table這些東西。

如果能呢,那豈不是很好?

這也就是我后來終于找到的

2. 高級一點的做法

我本機的環境:

windows 10 64bit

Visual Studio 2015 旗艦版,.NET 4.5.2,

Mysql 5.7.17 社區版。

按照博文中的配置好之后,直接運行成功,一字不改。

而且注冊登錄都成功寫入數據庫。

完全仿照這個做完就好了。

總結

以上是生活随笔為你收集整理的mvc identity连接mysql_asp.net MVC5,如何使用mysql数据库,使用MVC框架中自带的identity用户验证体系...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。