我们使用一个名为Universe的IBM数据库,它将所有用户ID,密码和配置文件信息保存在名为USERINFO的表中.
我可以使用成员资格提供程序连接到此数据库并对用户进行身份验证吗?
数据库访问实际上是通过Web服务,因为我们没有直接连接到数据库.
我们有一个名为GetUserInfo的Web服务方法,它接受username的参数.该方法将返回密码和配置文件信息.
如上所述,您需要创建一个相当简单的自定义成员资格提供程序.您将创建一个继承自System.Web.Security.MembershipProvider的.NET类.在您的类中有几种方法需要重写,但大多数方法甚至不被MVC帐户控制器使用.您要覆盖的主要方法是ValidateUser(用户名,密码),它将使用户登录.在您实现类之后,您需要在web.config中注册它,这也很容易.
您可以在此处找到自定义提供程序的示例:http: //msdn.microsoft.com/en-us/library/6tc47t75(VS.80).aspx
以及整个过程的教程:http: //www.15seconds.com/issue/050216.htm
请记住,为MVC创建自定义提供程序的过程对于标准ASP.NET网站是相同的,但是MVC没有完全利用MembershipProvider类的所有方法,因此它更容易实现.