菜鳥來的,剛接觸mvc,看到mvc5上默認帶有identity身份驗證的東西,公司用的oracle數據庫,便想着東西能不能支持oracle數據庫,折騰了半天弄出下面的東西來,有些東西可能不太准確,望大神斧正,
工具
1 vs2013
2 oracle 10.2
3 oadc 12c (下載地址 http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html)
一. 獲取 AspNet.Identity.OracleProvider
這玩意是別個拓展Microsoft.AspNet.Identity用來支持orcle的身份驗證的程序包,NuGet直接搜索可以得到,建議直接去github直接下載源碼方便學習和拓展
下載下來后建議清理下,去掉多余的東西,方便以后用,項目里面的東西比較簡單自己看看就懂了
二 數據庫創建
1 試試嘛,所以隨便建了個用戶
2 導入建表語句,AspNet.Identity.OracleProvider項目下面OracleIdentity.sql,放到plsql下執行下,創建5張表
三.添加到項目
1 新建MVC5項目(個人身份認證)
2 將AspNet.Identity.OracleProvider項目添加到新建的解決方案中(我是這么干的,以后可能會拓展里面的東西,比如IdentityUser用戶類中添加用戶相關信息,神有更好不用的修改這個項目的的方法,請教我)
四 項目修改
數據庫方面
1 連接串修改 <add name="DefaultConnection" connectionString="Data Source=orcl; User ID = cc; Password = cc" providerName="Oracle.ManagedDataAccess.Client;provider" />
2 添加引用 Oracle.ManagedDataAccess
identity方面
1 轉到AccountController下,可以看到AccountController 默認構造函數調用的是using Microsoft.AspNet.Identity.EntityFramework,這個我們用不上,那我們先把這個引用給刪掉,添加using AspNet.Identity.OracleProvider;這個引用,並修改代碼,如下
public AccountController()
: this(new UserManager<IdentityUser>(new UserStore(new OracleDataContext())))
{
}
2 替換類中所有的ApplicationUser為IdentityUser
3 運行下試試,注冊,登錄已經可是使用了