MVC创建我自己的会员提供者

时间:2014-02-15 22:42:29

标签: asp.net-mvc membership-provider

通常当我使用简单的会员提供者时,我发现自己受到限制。 所以我决定创建自己的会员提供者,但我很失败..

到目前为止我做了什么:

  1. 创建了一个新类 public class CustomMembershipProvider:System.Web.Security.MembershipProvider ..

  2. 更改了我的Web.config文件,以便我可以使用自己的提供程序..

  3. 我现在可以在我的控制器中访问这些功能,如下所示: var membership =(Testproject.Custom_Membership_Provider.CustomMembershipProvider)System.Web.Security.Membership.Provider;

  4. 下一步是什么? 我希望能够从我的数据库中检索数据并进行更改。例如,获取当前用户电子邮件并能够更改它。

    我在这里走在正确的轨道上吗?你可以给我一些关于这两个功能的初学者帮助吗?

    另外..如果您不使用任何自定义或简单的成员资格提供程序,您认为如何从数据库中检索和更改数据?你能举个例子吗?比如,检索当前用户并更改它的电子邮件。

    我感谢所有帮助!谢谢, / confused kiddo

2 个答案:

答案 0 :(得分:0)

微软放弃了简单的会员资格提供者并推出了新的会员资格 - 检查ASP.Net Identity 这里有一些关于自定义的文章:

Customizing profile information in ASP.NET Identity

Customizing ASP.NET Identity in MVC 5

同时检查一下:

The good, the bad and the ugly of ASP.NET Identity

我希望它会有用。

答案 1 :(得分:0)

What's next?

实施您需要的方法。喜欢如果您需要能够检索用户信息,请执行

  

MembershipUser GetUser(string username,bool userIsOnline);

Am I on the right track here?

那么这取决于您选择推出自己的提供商的问题?您共享的示例也可以通过SimpleMembershipProvider来满足。例如,如果要为用户添加电子邮件,可以将其添加到UserProfile表中并轻松检索它。请参见示例here

Could you give me some starter help on those two functions?

您需要基本上使用您选择的数据库(SQL Server)和ORM(例如EF)实现CRUD操作。一旦您具有从数据库中的表读取和写入的能力,就创建一个表UserProfile。用户注册时,将用户信息插入其中。如果要验证,请调用ValidateUser()方法。由于您派生自MembershipProvider,因此您必须实施所有必需的方法。有关详细信息,请参阅此link

If you don't use any of the membership providers, custom or simple, how are you suppose to retrieve and change data from database?

这里讨论有两个问题,一个验证用户的能力(用户验证),第二个从数据库存储和检索数据的能力。我相信你的问题首先是参考。

ASP.NET通过身份验证提供程序实现身份验证,代码模块包含验证请求者凭据所需的代码。更多信息here

如果您不想使用ASP.NET成员资格,则必须选择另一个框架进行用户身份验证或自行编写(绝对不是一种经济有效的方法)。