菜鸟来的,刚接触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 运行下试试,注册,登录已经可是使用了