手机站
网通分站
电信主站
密 码:
用户名:
当前位置 : 主页>网络编程>Asp.Net编程>列表

ASP.NET 2.0 Membership

来源:互联网 作者:west263.com 时间:2008-02-22
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

public static class Membership

...{

// Events

public static event MembershipValidatePasswordEventHandler ValidatingPassword;

// Methods

static Membership();

public static MembershipUser CreateUser(string username, string password);

public static MembershipUser CreateUser(string username, string password, string email);

public static MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, out MembershipCreateStatus status);

public static MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status);

public static bool DeleteUser(string username);

public static bool DeleteUser(string username, bool deleteAllRelatedData);

public static MembershipUserCollection FindUsersByEmail(string emailToMatch);

public static MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords);

public static MembershipUserCollection FindUsersByName(string usernameToMatch);

public static MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords);

public static string GeneratePassword(int length, int numberOfNonAlphanumericCharacters);

public static MembershipUserCollection GetAllUsers();

public static MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords);

private static string GetCurrentUserName();

public static int GetNumberOfUsersOnline();

public static MembershipUser GetUser();

public static MembershipUser GetUser(bool userIsOnline);

public static MembershipUser GetUser(object providerUserKey);

public static MembershipUser GetUser(string username);

public static MembershipUser GetUser(object providerUserKey, bool userIsOnline);

public static MembershipUser GetUser(string username, bool userIsOnline);

public static string GetUserNameByEmail(string emailToMatch);

private static void Initialize();

public static void UpdateUser(MembershipUser user);

public static bool ValidateUser(string username, string password);

// Properties

public static string ApplicationName ...{ get; set; }

public static bool EnablePasswordReset ...{ get; }

public static bool EnablePasswordRetrieval ...{ get; }

public static string HashAlgorithmType ...{ get; }

internal static bool IsHashAlgorithmFromMembershipConfig ...{ get; }

public static int MaxInvalidPasswordAttempts ...{ get; }

public static int MinRequiredNonAlphanumericCharacters ...{ get; }

public static int MinRequiredPasswordLength ...{ get; }

public static int PasswordAttemptWindow ...{ get; }

public static string PasswordStrengthRegularExpression ...{ get; }

public static MembershipProvider Provider ...{ get; }

public static MembershipProviderCollection Providers ...{ get; }

public static bool RequiresQuestionAndAnswer ...{ get; }

public static int UserIsOnlineTimeWindow ...{ get; }

// Fields

private static char[] punctuations;

private static bool s_HashAlgorithmFromConfig;

private static string s_HashAlgorithmType;

private static bool s_Initialized;

private static Exception s_InitializeException;

private static object s_lock;

private static MembershipProvider s_Provider;

private static MembershipProviderCollection s_Providers;

private static int s_UserIsOnlineTimeWindow;

}

说到这里,就不得不多罗嗦两句。在看Membership(Static Class)实现代码的过程中,可以发现,每一个Membersip API重载都最后都是调用属性Provider的方法,这个属性的类型就是MembershipProvider类型,只有看到这里,你也许才会理解MembershipProvider的重要作用了吧。还有一个Providers属性,这个属性就是获得web.config中配置的所有的Membership提供服务类。它们都是静态属性,但是它们怎么去实例化的呢?就是通过调用Membership. Initialize()这个方法,在每次调用这两个属性的时候,都会调用这个方法去判断是否已初始化了Membership提供服务类了,如果没有则去调用配置服务类,读取配置内容,从而进行初始化。到此你可能也就不难理解了,为什么我们使用那么简单了!

三、SqlMembershipProvider介绍和使用配置

OK,通过上面的介绍应该基本可以了解Membership的整体结构了吧?(如何还没有,可能是你没有打开Lutz Roder’s .NET Reflector去分析它的实现代码,或者是对抽象类的作用还没弄明白)。不管怎么样,我们最终的目的就是要学会如何去使用。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!