.Net 3.5 Forms验证开发 学习心得(一)

最近要做一个小项目,里面有许多权限设置,大脑一闪而过,如果能使用.net 提供的forms验证,那该方便很多吧。但是转念一想,之前也尝试用过,就是一直没有任何头绪,因为除了把它拖到界面来后 ,不知怎么进行代码级开发,网上似乎相关的资料也不多(难道是我百度能力不行?)。现在终于有点头绪,便写下部分心得,如有高手过目,望切莫取笑。

 

首先,要使用表单验证,web.config是肯定要配置的,这方面网上很多,我只列关键的。

<system.web>

<authentication mode="Forms" >
      <forms loginUrl="login.aspx"
      name=".ASPXFORMSAUTH" />
    </authentication>

 

<authorization>
  <deny users="?" />
  </authorization>
</system.web>
接着,进入"ASP.NET 配置"   在这里会创建一个用于保存 所有用户验证信息、用户角色的数据库,该数据库中会包含很多表,很多存储过程。
目前,我还没有找到可以不使用这个数据库的方法,所能采取的措施就是把自己系统其他功能的数据表整合到这个数据库中。如有高手可以不用这个
方法,请指点下。
数据库中:
aspnet_Users 用以存放 用户名
aspnet_membership 用以存放用户名外的其他信息,如密码、邮件
aspnet_roles 用以存放角色名称
aspnet_UsersInRoles 用以存放 用户 于 角色的关系。
其他的我暂时没有用到,不知啥功能。
登陆组件概论
1、Login 用以登陆,如果是采用了模板,就要用代码来开发了,后面再说吧
2、LoginView 用以区分不同角色所看见的界面,如经理和财务人员看见的财务信息是不可能相同的。
3、LoginName 显示登陆名称
4、LoginStatus 用于注销和登陆
5、6、7、其实会点英文你就该懂啥功能了,不说了呵呵。
最后,要真正进行代码开发,有3个类必须弄懂,看清楚。
1、Roles [public static class Roles]
2、membership [public static class Membership]
3、membershipUser [public class MembershipUser]
看完下面这个小例子,是不是觉得判别用户、查询角色不再是一件困难的事
  
如果 要进行更加复杂的功能,可以先查看MSDN上的解释,各种版本都有,如果有良好的英文水平,将是事半功倍。
我也刚上路,接下来会把一些东西放上来研究
membershipUser 类
属性:
  名称说明
公共属性 Comment 获取或设置成员资格用户的特定于应用程序的信息。
公共属性 CreationDate 获取将用户添加到成员资格数据存储区的日期和时间。
公共属性 Email 获取或设置成员资格用户的电子邮件地址。
公共属性 IsApproved 获取或设置一个值,表示是否可以对成员资格用户进行身份验证。
公共属性 IsLockedOut 获取一个值,该值指示成员资格用户是否因被锁定而无法进行验证。
公共属性 IsOnline 获取一个值,表示用户当前是否联机。
公共属性 LastActivityDate 获取或设置成员资格用户上次进行身份验证或访问应用程序的日期和时间。
公共属性 LastLockoutDate 获取最近一次锁定成员资格用户的日期和时间。
公共属性 LastLoginDate 获取或设置用户上次进行身份验证的日期和时间。
公共属性 LastPasswordChangedDate 获取上次更新成员资格用户的密码的日期和时间。
公共属性 PasswordQuestion 获取成员资格用户的密码提示问题。
公共属性 ProviderName 获取成员资格提供程序的名称,该提供程序存储并检索成员资格用户的用户信息。
公共属性 ProviderUserKey 从用户的成员资格数据源获取用户标识符。
公共属性 UserName 获取成员资格用户的登录名。

方法:

  名称说明
公共方法 ChangePassword 更新成员资格数据存储区中成员资格用户的密码。
公共方法 ChangePasswordQuestionAndAnswer 更新成员资格数据存储区中成员资格用户的密码提示问题和密码提示问题答案。
公共方法 Equals(Object) 确定指定的 Object 是否等于当前的 Object (继承自 Object。)
受保护的方法 Finalize 下面的示例使用 $$$$方法实例化一个字符串,表示 每个 Aegean 的数目。 (继承自 Object。)
公共方法 GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)
公共方法 GetPassword() 从成员资格数据存储区获取成员资格用户的密码。
公共方法 GetPassword(String) 从成员资格数据存储区获取成员资格用户的密码。
公共方法 GetType 获取当前实例的 Type (继承自 Object。)
受保护的方法 MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
公共方法 ResetPassword() 将用户密码重置为一个自动生成的新密码。
公共方法 ResetPassword(String) 将用户密码重置为一个自动生成的新密码。
公共方法 ToString 返回成员资格用户的用户名。 (重写 Object.ToString()。)
公共方法 UnlockUser 清除用户的锁定状态以便可以验证成员资格用户。

membership 类

属性:

  名称说明
公共属性 静态成员 ApplicationName 获取或设置应用程序的名称。
公共属性 静态成员 EnablePasswordReset 获得一个值,指示当前成员资格提供程序是否配置为允许用户重置其密码。
公共属性 静态成员 EnablePasswordRetrieval 获得一个值,指示当前成员资格提供程序是否配置为允许用户检索其密码。
公共属性 静态成员 HashAlgorithmType 用于哈希密码的算法的标识符。
公共属性 静态成员 MaxInvalidPasswordAttempts 获取锁定成员资格用户前允许的无效密码或无效密码提示问题答案尝试次数。
公共属性 静态成员 MinRequiredNonAlphanumericCharacters 获取有效密码中必须包含的最少特殊字符数。
公共属性 静态成员 MinRequiredPasswordLength 获取密码所要求的最小长度。
公共属性 静态成员 PasswordAttemptWindow 获取时间长度,在该时间间隔内对提供有效密码或密码答案的连续失败尝试次数进行跟踪。
公共属性 静态成员 PasswordStrengthRegularExpression 获取用于计算密码的正则表达式。
公共属性 静态成员 Provider 获取对应用程序的默认成员资格提供程序的引用。
公共属性 静态成员 Providers 获取一个用于 ASP.NET 应用程序的成员资格提供程序的集合。
公共属性 静态成员 RequiresQuestionAndAnswer 获取一个值,该值指示默认成员资格提供程序是否求用户在进行密码重置和检索时回答密码提示问题。
公共属性 静态成员 UserIsOnlineTimeWindow 指定用户在最近一次活动的日期/时间戳之后被视为联机的分钟数。

 

方法:

  名称说明
公共方法 静态成员 CreateUser(String, String) 将新用户添加到数据存储区。
公共方法 静态成员 CreateUser(String, String, String) 将具有指定的电子邮件地址的新用户添加到数据存储区。
公共方法 静态成员 CreateUser(String, String, String, String, String, Boolean, MembershipCreateStatus) 将具有指定属性值的新用户添加到数据存储区,并返回一个状态参数,指示该用户是否成功创建或用户创建失败的原因。
公共方法 静态成员 CreateUser(String, String, String, String, String, Boolean, Object, MembershipCreateStatus) 将具有指定的属性值和唯一的标识符的新用户添加到数据存储区,并返回一个状态参数,指示该用户是否成功创建或用户创建失败的原因。
公共方法 静态成员 DeleteUser(String) 从数据库中删除用户和任何相关的用户数据。
公共方法 静态成员 DeleteUser(String, Boolean) 从数据库中删除一个用户。
公共方法 静态成员 FindUsersByEmail(String) 获取一个成员资格用户的集合,其中的电子邮件地址包含要匹配的指定电子邮件地址。
公共方法 静态成员 FindUsersByEmail(String, Int32, Int32, Int32) 获取一个成员资格用户的集合并显示在一个数据页中,这些用户的电子邮件地址包含要匹配的指定电子邮件地址。
公共方法 静态成员 FindUsersByName(String) 获取一个成员资格用户的集合,其中的用户名包含要匹配的指定用户名。
公共方法 静态成员 FindUsersByName(String, Int32, Int32, Int32) 获取一个成员资格用户的集合,并显示在一个数据页中,这些用户的用户名包含要匹配的指定用户名。
公共方法 静态成员 GeneratePassword 生成指定长度的随机密码。
公共方法 静态成员 GetAllUsers() 获取数据库中所有用户的集合。
公共方法 静态成员 GetAllUsers(Int32, Int32, Int32) 获取数据库中的所有用户的集合,并显示在数据页中。
公共方法 静态成员 GetNumberOfUsersOnline 获取当前访问应用程序的用户数。
公共方法 静态成员 GetUser() 从数据源获取信息并为当前已登录的成员资格用户更新最后一次活动日期/时间戳。
公共方法 静态成员 GetUser(Boolean) 从数据源获取当前已登录的成员资格用户的信息。 为当前已登录的成员资格用户(如果被指定)更新最后一次活动的日期/时间戳。
公共方法 静态成员 GetUser(Object) 从数据源获取与指定的唯一标识符关联的成员资格用户信息。
公共方法 静态成员 GetUser(String) 从数据源获取指定成员资格用户的信息。
公共方法 静态成员 GetUser(Object, Boolean) 从数据源获取与指定的唯一标识符关联的成员资格用户信息。 更新用户(如果指定)的最近一次活动的日期/时间戳。
公共方法 静态成员 GetUser(String, Boolean) 从数据源获取指定成员资格用户的信息。 更新用户(如果指定)的最近一次活动的日期/时间戳。
公共方法 静态成员 GetUserNameByEmail 获取一个用户名,其中该用户的电子邮件地址与指定的电子邮件地址匹配。
公共方法 静态成员 UpdateUser 用指定用户的信息更新数据库。
公共方法 静态成员 ValidateUser 验证提供的用户名和密码是有效的。

Roles 类

属性:

  名称说明
公共属性 静态成员 ApplicationName 获取或设置要存储和检索其角色信息的应用程序的名称。
公共属性 静态成员 CacheRolesInCookie 获取一个值,该值指示当前用户的角色是否已缓存在某个 Cookie 中。
公共属性 静态成员 CookieName 获取在其中缓存角色名称的 Cookie 的名称。
公共属性 静态成员 CookiePath 获取缓存角色名称的 Cookie 的路径。
公共属性 静态成员 CookieProtectionValue 获取一个指示如何保护在 Cookie 中缓存的角色名称的值。
公共属性 静态成员 CookieRequireSSL 获取一个值,该值指示角色名称 Cookie 是否需要 SSL 以便返回到服务器。
公共属性 静态成员 CookieSlidingExpiration 指示是否将要定期重置角色名称 Cookie 的到期日期和时间。
公共属性 静态成员 CookieTimeout 获取角色 Cookie 到期前的分钟数。
公共属性 静态成员 CreatePersistentCookie 获取一个值,该值指示角色名称 Cookie 是基于会话的还是持久性的。
公共属性 静态成员 Domain 获取角色名称 Cookie 的域的值。
公共属性 静态成员 Enabled 获取或设置用来指示是否为当前 Web 应用程序启用角色管理的值。
公共属性 静态成员 MaxCachedResults 获取要为用户缓存的角色名称的最大数量。
公共属性 静态成员 Provider 获取应用程序的默认角色提供程序。
公共属性 静态成员 Providers 获取 ASP.NET 应用程序的角色提供程序的集合。

 

方法: 

  名称说明
公共方法 静态成员 AddUsersToRole 将指定的用户添加到指定的角色中。
公共方法 静态成员 AddUsersToRoles 将指定的用户添加到指定的角色中。
公共方法 静态成员 AddUserToRole 将指定的用户添加到指定的角色中。
公共方法 静态成员 AddUserToRoles 将指定的用户添加到指定的角色中。
公共方法 静态成员 CreateRole 将新的角色添加到数据源。
公共方法 静态成员 DeleteCookie 删除在其中缓存角色名称的 Cookie。
公共方法 静态成员 DeleteRole(String) 从数据源移除一个角色。
公共方法 静态成员 DeleteRole(String, Boolean) 从数据源移除一个角色。
公共方法 静态成员 FindUsersInRole 获取属于指定角色的用户的列表,其中用户名包含要匹配的指定用户名。
公共方法 静态成员 GetAllRoles 获取应用程序的所有角色的列表。
公共方法 静态成员 GetRolesForUser() 获取当前登录的用户所属角色的列表。
公共方法 静态成员 GetRolesForUser(String) 获取一个用户所属角色的列表。
公共方法 静态成员 GetUsersInRole 获取属于指定角色的用户的列表。
公共方法 静态成员 IsUserInRole(String) 获取一个值,该值指示当前登录的用户是否属于指定的角色。
公共方法 静态成员 IsUserInRole(String, String) 获取一个指示指定用户是否属于指定角色的值。
公共方法 静态成员 RemoveUserFromRole 从指定的角色中移除指定的用户。
公共方法 静态成员 RemoveUserFromRoles 从指定的角色中移除指定的用户。
公共方法 静态成员 RemoveUsersFromRole 从指定的角色中移除指定的用户。
公共方法 静态成员 RemoveUsersFromRoles 移除指定角色中的指定用户名。
公共方法 静态成员 RoleExists 获取一个值,该值指示指定的角色名称是否已存在于角色数据源中。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值