通常当我使用简单的会员提供者时,我发现自己受到限制。 所以我决定创建自己的会员提供者,但我很失败..
到目前为止我做了什么:
创建了一个新类 public class CustomMembershipProvider:System.Web.Security.MembershipProvider ..
更改了我的Web.config文件,以便我可以使用自己的提供程序..
我现在可以在我的控制器中访问这些功能,如下所示: var membership =(Testproject.Custom_Membership_Provider.CustomMembershipProvider)System.Web.Security.Membership.Provider;
下一步是什么? 我希望能够从我的数据库中检索数据并进行更改。例如,获取当前用户电子邮件并能够更改它。
我在这里走在正确的轨道上吗?你可以给我一些关于这两个功能的初学者帮助吗?
另外..如果您不使用任何自定义或简单的成员资格提供程序,您认为如何从数据库中检索和更改数据?你能举个例子吗?比如,检索当前用户并更改它的电子邮件。
我感谢所有帮助!谢谢, / confused kiddo
答案 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成员资格,则必须选择另一个框架进行用户身份验证或自行编写(绝对不是一种经济有效的方法)。