Asp.net的用户管理
在大多数系统中,开发人员都是自己建立用户管理系统
在asp.net中,微软给了一套用户验证,权限,角色的控件和API,接下来的几往篇文单谈一下自己的浅薄认识。
引入数据库
把用户管理的数据库引入到自己的项目中,在装完Freamework2.0后,有如下文件,C:"Windows"Microsoft.NET"Framework"v2.0.50727"aspnet_regsql.exe(这是默认的安装目录),这个文件是用来向用户的数据库添加用户管理的数据库表的。安装界面如下:
(一)
(二)
(三)
(四)
(五)其中的第三步,用户可以选择自己的数据库把用户管理的数据表加载到自己的数据库中。
此时如果用用户登录控件做用户的操作时,用户的信息还是添加不到自己的数据中的,因为系统默认的用户数据库是一个位于本项目App_Data文件夹下的一个文件性SQL数据库,为了登录控件中用户管理的一些类能操作自己的数据库中的用户管理表,则需在配置文件作一下配置的修改,即在web.config中作修改。
修改如下:
在web.config的<system.web>中添加下列代码
1<!--添加成员管理-->
2<membership defaultProvider="SqlProvider" userIsOnlineTimeWindow="20">
3<providers>
4<add connectionStringName="ConString" enablePasswordRetrieval="false"
5enablePasswordReset="true" requiresQuestionAndAnswer="true"
6passwordFormat="Hashed" applicationName="/" name="SqlProvider"
7type="System.Web.Security.SqlMembershipProvider" />
8</providers>
9</membership>
10<!--添加角色管理-->
11<roleManager defaultProvider="SqlProvider"
12enabled="true" cacheRolesInCookie="true" cookieName=".ASPROLES" cookieTimeout="30" cookiePath="/" cookieRequireSSL="true" cookieSlidingExpiration="true" cookieProtection="All" >
13<providers>
14<add name="SqlProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ConString" applicationName="SampleApplication" />
15</providers>
16</roleManager>
17<!--配置连接字符串-->
18<connectionStrings>
19<add name="ConString" connectionString="Data Source=.;Initial Catalog=UserManage;Integrated Security=True" providerName="System.Data.SqlClient" />
20</connectionStrings>
本配置的意思是重新建立一个连接字符串,把用户管理和角色管理都指向这个连接字符串,也就是系统中有关用户角色类操作数据库时都依赖这个连接来完成。
成员管理和角色管理的配置中都有一个<providers>的标签,该标签的主要作用是配置成员类和角色类的一些属性,比如成员配置中<add connectionStringName="ConString" enablePasswordRetrieval="false"
enablePasswordReset="true" requiresQuestionAndAnswer="true"
passwordFormat="Hashed" applicationName="/" name="SqlProvider"
type="System.Web.Security.SqlMembershipProvider" />
首先是个连接,指向ConString,密码回复功能,密码重设功能,是否要问题回答,密码的格式,应用程序的路径,本Provider的名称,以及本Provider的类型。
至此,我们就完成了把微软的用户管理的表导入自己的数据库,并且作了连接字符串的配置,如果我们现在操作成员类或角色类,成员和角色的变动就会在自己的数据表中得到体现。
《asp.net core精要讲解》 https://ke.qq.com/course/265696
《asp.net core 3.0》 https://ke.qq.com/course/437517
《asp.net core项目实战》 https://ke.qq.com/course/291868
《基于.net core微服务》 https://ke.qq.com/course/299524
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下