ASP.NET 2.0角色及成员管理

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,基础系列 2核4GB
简介:

 成员管理
一、 Membership 类   :   创建和删除用户, 检索用户信  ,生成随机密码 , 登录验证 
          创建新用户:

try    {
         Membership.CreateUser (
"name""password""mail");
       }

  
catch  (MembershipCreateUserException e) 
       
{
       
// 失败
       switch (e.StatusCode)
          
{
       
case MembershipCreateStatus.DuplicateUsername:
       
       
case MembershipCreateStatus.DuplicateEmail:
       
       
case MembershipCreateStatus.InvalidPassword:
       
       
default:
       
          }

       }
       登录验证:
  if  (Membership.ValidateUser (UserName.Text, Password.Text))
     FormsAuthentication.RedirectFromLoginPage (UserName.Text,
       RememberMe.Checked);
         方法 :CreateUser(创建用户)  DeleteUser(删除用户)  GeneratePassword(生产随即密码)  GetAllUsers(得到用户)  GetUser(查看某个用户) UpdateUser(修改用户)  ValidateUser(验证是否成功)
二、 MembershipUser类:
     描述在成员数据存储中单一的注册用户信息
     包含了众多的属性来获取和设置用户信息
     包含方法来检索、改变和重设密码
     通过诸如GetUser 和CreateUser的属性返回值
     属性:Comment  CreationDate  Email  LastLoginDate  LastPasswordChangedDate  UserId  UserName
     方法:  ChangePassword  ChangePassword-QuestionAndAnswer   GetPassword   ResetPassword
      挂起登录权限:
  if  (Membership.ValidateUser (UserName.Text, Password.Text))  {
    MembershipUser user 
= Membership.GetUser (UserName.Text);
    user.Comment 
= "0"//记录登录次数
    RedirectFromLoginPage (UserName.Text, RememberMe.Checked);
    }

    
else   {
    MembershipUser user 
= Membership.GetUser (UserName.Text);
    
if (user != null{
        
string count = Convert.ToInt32 (user.Comment) + 1;
         user.Comment 
= count.ToString ();
    }

}
三  使用 SQL Server提供程序
  < configuration >
  
< system .web >
    
< membership  defaultProvider ="AspNetSqlProvider"   />
  
</ system.web >
</ configuration >
   更改提供程序配置:
   < membership >
  
< providers >
    
< remove  name ="AspNetSqlProvider"   />
    
< add  name ="AspNetSqlProvider"
      type
="System.Web.Security.SqlMembershipProvider, System.Web, "
      connectionStringName
="RemoteSqlServer"
      enablePasswordRetrieval
="false"
      enablePasswordReset
="true"
      requiresQuestionAndAnswer
="false"
      applicationName
="/"
      requiresUniqueEmail
="false"
      passwordFormat
="Hashed"
      description
="Stores and retrieves membership data "
    
/>
  
</ providers >
</ membership >
配置提供程序
成员提供程序支持许多配置选项,密码如何被存储 (明文, 散列, 加密)?密码是否允许被恢复?用户是否必须有一个唯一的e-mail地址?通过提供程序类属性来表现,在配置文件中进行初始化
四、角色管理
     方法:AddUserToRole  CreateRole  DeleteRole   GetRolesForUser(查看用户角色)   GetUsersInRole   IsUserInRole  RemoveUserFromRole
    创建新角色
if  ( ! Roles.RoleExists ( " Developers " ))  {
    Roles.CreateRole (
"Developers");
}
    增加用户到一个角色
string  name  =  Membership.GetUser ().Username;
Roles.AddUserToRole (name, 
" Developers " );
     配置Web.config启用角色
< configuration >
  
< system .web >
    
< roleManager  enabled ="true"   />
  
</ system.web >
</ configuration >
    启用角色高速缓存
< configuration >
  
< system .web >
    
< roleManager  enabled ="true"  cacheRolesInCookie ="true"   />
    
<!--  Other roleManager attributes (and their defaults) include:
      cookieName=".ASPXROLES"         // Cookie name
      cookieTimeout="30"              // Cookie lifetime
      cookiePath="/"                  // Cookie path
      cookieRequireSSL="false"        // Restrict cookie to SSL?
      cookieSlidingExpiration="true"  // Renew expiring cookies?
      createPersistentCookie="false"  // Issue persistent cookie?
      cookieProtection="All" />       // Cookie protection level
    
-->
  
</ system.web >
</ configuration >
   使用SQL Server提供程序
< configuration >
  
< system .web >
    
< roleManager  enabled ="true"  defaultProvider ="AspNetSqlRoleProvider"   />
  
</ system.web >
</ configuration >

错误提示:
密码最短长度为 7,其中必须包含以下非字母数字字符: 1

解决方案:
收到以上的消息主要是在创建用户的时候产生的,对于用Asp.net 网站管理工具的时候创建用户也会产生。
主要是密码输入不符合要求,要改变上面的规定时,主要有两种方法:
1.所有的站点都改变。
     找到machine.config文件

< membership >
            
< providers >
                
< add  name ="AspNetSqlMembershipProvider"
                    type
="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                    connectionStringName
="LocalSqlServer"
                    enablePasswordRetrieval
="false"
                    enablePasswordReset
="true"
                    requiresQuestionAndAnswer
="true"
                    applicationName
="/"
                    requiresUniqueEmail
="false"
                    passwordFormat
="Hashed"
                    maxInvalidPasswordAttempts
="5"
                    minRequiredPasswordLength
="7"
                    minRequiredNonalphanumericCharacters
="1"
                    passwordAttemptWindow
="10"
                    passwordStrengthRegularExpression
=""   />
            
</ providers >
        
</ membership >
里面有两个属性,一个是  minRequiredPasswordLength,意思是最长密码,默认为7另一个是minRequiredNonalphanumericCharacters,默认为1,意思是至少有一个非字母字符,只要把它改成0就可以了。

2.假如只是对某一个站点,只要修改web.config的值就ok了
修改如上,把上面的代码插入在
< system .web > 下面就ok了。

如要改成密码规则是"至少6个字符,而不用特殊字符的",如下:
(注:一定要加上 
< remove  name ="AspNetSqlMembershipProvider"   /> ,否则会提示"项“AspNetSqlMembershipProvider”已添加"的出错信息)

            
< membership >
            
< providers >
                    
< remove  name ="AspNetSqlMembershipProvider"   />
                
< add  name ="AspNetSqlMembershipProvider"
                    type
="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
                    connectionStringName
="LocalSqlServer"
                    enablePasswordRetrieval
="false"
                    enablePasswordReset
="true"
                    requiresQuestionAndAnswer
="true"
                    applicationName
="/"
                    requiresUniqueEmail
="false"
                    passwordFormat
="Hashed"
                    maxInvalidPasswordAttempts
="5"
                    minRequiredPasswordLength
="6"
                    minRequiredNonalphanumericCharacters
="0"
                    passwordAttemptWindow
="10"
                    passwordStrengthRegularExpression
=""   />
            
</ providers >
        
</ membership >




本文转自高海东博客园博客,原文链接:http://www.cnblogs.com/ghd258/archive/2005/10/09/250802.html,如需转载请自行联系原作者
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
3月前
|
开发框架 .NET 数据库连接
ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?
ASP.NET Core 标识(Identity)框架系列(一):如何使用 ASP.NET Core 标识(Identity)框架创建用户和角色?
|
6月前
|
开发框架 搜索推荐 .NET
ASP.NET体检中心源码,实现检前、检中、检后全流程管理
健康体检系统遵循整个健康体检的实际流程,以提高工作效率、降低错检、防止漏检提高人性化服务水平为目的,在体检过程中可以高效、自动化、人性化的处理数据与提供服务。针对体检流程中工作强度在时间分配上不均匀等特点,解决了体检信息处理效率问题,在不增加体检中心人力资源投入或少投入的基础上,提升信息处理的效率,从而突破体检中心日处理体检人数的上限,为体检中心创造更大经济效益的同时,还能有效的降低体检工作者的劳动强度。
119 5
|
6月前
|
Windows
windows server 2019 安装NET Framework 3.5失败,提示:“安装一个或多个角色、角色服务或功能失败” 解决方案
windows server 2019 安装NET Framework 3.5失败,提示:“安装一个或多个角色、角色服务或功能失败” 解决方案
1027 0
|
6月前
|
存储 开发框架 .NET
【ASP.NET】医学实验室管理(LIS)系统源码
【ASP.NET】医学实验室管理(LIS)系统源码
123 0
|
开发框架 监控 .NET
ASP.NET Dotnet LIMS实验室综合管理和质量监控系统源码
系统功能包括检测管理(合同管理、样品管理、样品收发管理、工作任务分配、检测结果登记、复核及审核、留样管理等)、报告管理(报告编制、审核、签发、打印等)、原始记录管理、仪器设备管理、物质试剂管理、文件管理、组织人员管理、标准管理、客户供应商管理、财务管理、查询统计等诸多模块为一体,组成一套完整的实验室综合管理和质量监控体系。
|
开发框架 数据可视化 前端开发
ASP.NET Core MVC+Quartz实现定时任务可视化管理页面
ASP.NET Core MVC+Quartz实现定时任务可视化管理页面
575 0
|
开发框架 监控 前端开发
ASP.NET实验室信息化管理平台(LIMS)源码
实验室信息管理系统(LIMS)是实验室人(人员)、机(仪器)、料(样品、材料)、法(方法、标准、质量)、环(环境)全面资源管理的实验室信息化管理系统,是一套完整的检验综合管理和产品质量监控体系,在满足日常管理要求,保证检验分析数据的严格管理和控制。它能全面优化实验室的检验管理工作,显著提升实验室的工作效率和生产力,提高质量控制水平。
89 0
|
开发框架 前端开发 JavaScript
ASP.NET云LIS管理系统源码
基于.NET core3.1,包含前处理、检验、报告、质控、统计分析、两癌等模块 ,有源码,有演示,有文档。
138 0
ASP.NET云LIS管理系统源码
|
存储 开发框架 .NET
使用.NET从零实现基于用户角色的访问权限控制
本文将介绍如何实现一个基于.NET RBAC 权限管理系统,如果您不想了解原理,可查看推送的另一篇文章关于[Sang.AspNetCore.RoleBasedAuthorization](https://www.nuget.org/packages/Sang.AspNetCore.RoleBasedAuthorization) 库是使用介绍,直接使用该库即可。
345 0
使用.NET从零实现基于用户角色的访问权限控制
|
SQL 存储 开发框架
ASP.NET 用户和角色管理 附加代码详解
ASP.NET 用户和角色管理 附加代码详解
ASP.NET 用户和角色管理 附加代码详解
下一篇
无影云桌面