Membership配置篇

2023-10-05 22:30
文章标签 配置 membership

本文主要是介绍Membership配置篇,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

从.net 2.0开始  asp.net 就进入了一个倡导少写代码多配置的时期

“机器先进阿 我们只要把猪赶进去 对面就会从传送带里传出香肠来!”

下面就是启动机器并且赶猪的工作。


在赶猪以前,我们先来了解一下,Web.Security 的工作大概方式



当一个页面打开  系统会首先读取System.web  按照其中的配置段  在进程中建立相应的各种Provider的实例 。
之后的所有登陆控件在交互的时候会自动调用相应Provider实例的方法和属性。所以大部分工作是在配置中进行的

组件部分的对象  有很多同行建议自己写  免得过于依赖aspnetDB  具体可以参考 幻想曲的文章 
但我们这个是标准例程,所以暂时以 m$的标准库为基础建立


具体配置如下

1 配置数据库
运行    /WINDOWS/Microsoft.NET/Framework/v2.0.50727  下的Aspnet_regsql.exe



随后 向导便在SQL Server中建立了对应的表。
这些表就是.Net 2.0 默认Provider对应的表,如果你在建立一个新项目 就没必要在自己写烦人的登陆了,这些表和它们所支持默认Provider的已经涵盖了很多高级功能,包括cookie的支持、跨网站跨进程的登陆、找回密码、邮箱认证等功能,当然我们也可以扩展它们。





相对的  我们还需要在web.config 建立这个数据连接字符串(<configuration >段中)

     < connectionStrings >
        
< add  name ="MemberShip_Connection"  connectionString ="Data Source=.;Initial Catalog=MemberShip_Demo;Persist Security Info=True;User ID=sa;Password=abcdefg"  providerName ="System.Data.SqlClient" />
     </ connectionStrings >

这样数据库的配置就已经完成了,我爱厨房怎么说来着?阴干待用。

2  配置验证类型

一个asp.net缺省的身份验证是windows nt 登陆。如果我们要自己来处理验证信息就要在 <configuration >下面的<system.web> 段加入节点通知系统。

         < authentication  mode ="Forms" >
            
< forms  loginUrl ="~/Membership/authing/Login.aspx"  timeout ="30000" >
            
</ forms >
        
</ authentication >

mode=forms 表示我不要用默认的windows NT 权限设置、而用我们配置的这种自定义的 面向网页界面的验证方式。
loginUrl  表示如果访问某页需要验证的话 跳转到哪一个(一般是有Login控件的)地址来进行登陆。登陆完毕,会直接跳回刚才的页面。

3  配置各种Provider
Provider对于Membership的感觉有点像 DataAdapter对于Dataset的感觉,都是可选择的配件,你配置了不同的Provider 就有不同的用户数据库可以访问
目前Provider 默认提供两种官方Provider:  SQL Provider  & ADSI  Provider  
前者通过SqlServer数据库保存  后者直接连结windows域的adsi服务

例如
< membership  defaultProvider ="Main_SqlMemberShipProvider"  userIsOnlineTimeWindow ="20" >
            
< providers >
                
< add  connectionStringName ="MemberShip_Connection"  enablePasswordRetrieval ="false"  enablePasswordReset ="true"  requiresQuestionAndAnswer ="true"  passwordFormat ="Hashed"  applicationName ="DEMO_Membership"  name ="Main_SqlMemberShipProvider"  type ="System.Web.Security.SqlMembershipProvider" />
        
            
</ providers >
        
</ membership >

这个例子表示  我要用MemberShip_Connection这个连接字符串连接数据库(我们阴干待用的部分) 
用户不能找回密码但是可以重新设置密码,找回的时候需要密码提示问题,储存在数据库中的密码用sha1进行加密  等等细节问题。  对于公用的Membership数据库 区别名为  DEMO_Membership  .
Type是重要的选项 这决定你使用哪一个符合接口的具体的类型来担任Provider 项  如果你使用自己的Provider  可以把DLL作为引用添加在bin目录后  在这里填写详细的命名空间信息  比如“"System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089” 之类的东西  这里不作赘述

这时候 我们已经可以通过控件进行申请和登陆了   你所需要做的只是把控件拖到指定的页面上 然后test   也可以通过网站菜单下的管理工具进行修改





有些选项可能进不去 但是用户的删除和修改都可以尝试使用了。  我们只需要进一步配置 更多的功能就向我们敞开大门了~~~

同样我们配置Roles 和 Profile 的Provider
         < roleManager  enabled ="true"  cacheRolesInCookie ="true"  cookieName =".ASPROLES"  cookieRequireSSL ="true"  defaultProvider ="SqlRoleProvider" >
            
< providers >
                
< add  connectionStringName ="MemberShip_Connection"  applicationName ="DEMO_Membership"  name ="SqlRoleProvider"  type ="System.Web.Security.SqlRoleProvider" />
            
</ providers >
        
</ roleManager >


< profile  enabled ="true"  defaultProvider ="SqlProfileProvider" >
            
< providers >
                
< add  name ="SqlProfileProvider"  type ="System.Web.Profile.SqlProfileProvider"  connectionStringName ="MemberShip_Connection"  applicationName ="DEMO_Membership"  description ="SqlProfileProvider for SampleApplication" />
            
</ providers >
            
< properties >
            
        
< add  name ="UserAge"  type ="System.String"  defaultValue  ="21" ></ add >
        
< add  name ="UserSex"  type ="System.String"  defaultValue  ="Male" ></ add >
               
</ properties >
         </ profile >


经过编译以后  你已经可以轻松的在你的页面里面访问和设置你现在登陆的用户的各种信息:

    Protected   Sub Button1_Click(ByVal sender As ObjectByVal e As System.EventArgs) Handles Button1.Click
        
Dim x As String = String.Empty
        x 
= x & Membership.GetUser().UserName & ":"
        x 
= x & Roles.GetRolesForUser(Membership.GetUser().UserName).Length & "个角色:"
        x 
= x & "年龄" & Profile.UserAge
        Button1.Text 
= x

    
End Sub

假如你没有登陆  可能会得到一个对象引用错误   但是你作为一个已知用户登陆的话   运行结果大概是这样



而刚才提到的网站管理工具  已经基本可以正常工作了。


配置篇的例子到此完成    至于每一个参数什么意义   MSDN上还是很全的。 如果查资料比较不方便  可以留言  我们一起讨论

下一章我们将使用ODS绑定这些数据到GridView 和FormView 上进行管理。   

这篇关于Membership配置篇的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/152169

相关文章

Zookeeper安装和配置说明

一、Zookeeper的搭建方式 Zookeeper安装方式有三种,单机模式和集群模式以及伪集群模式。 ■ 单机模式:Zookeeper只运行在一台服务器上,适合测试环境; ■ 伪集群模式:就是在一台物理机上运行多个Zookeeper 实例; ■ 集群模式:Zookeeper运行于一个集群上,适合生产环境,这个计算机集群被称为一个“集合体”(ensemble) Zookeeper通过复制来实现

CentOS7安装配置mysql5.7 tar免安装版

一、CentOS7.4系统自带mariadb # 查看系统自带的Mariadb[root@localhost~]# rpm -qa|grep mariadbmariadb-libs-5.5.44-2.el7.centos.x86_64# 卸载系统自带的Mariadb[root@localhost ~]# rpm -e --nodeps mariadb-libs-5.5.44-2.el7

hadoop开启回收站配置

开启回收站功能,可以将删除的文件在不超时的情况下,恢复原数据,起到防止误删除、备份等作用。 开启回收站功能参数说明 (1)默认值fs.trash.interval = 0,0表示禁用回收站;其他值表示设置文件的存活时间。 (2)默认值fs.trash.checkpoint.interval = 0,检查回收站的间隔时间。如果该值为0,则该值设置和fs.trash.interval的参数值相等。

NameNode内存生产配置

Hadoop2.x 系列,配置 NameNode 内存 NameNode 内存默认 2000m ,如果服务器内存 4G , NameNode 内存可以配置 3g 。在 hadoop-env.sh 文件中配置如下。 HADOOP_NAMENODE_OPTS=-Xmx3072m Hadoop3.x 系列,配置 Nam

wolfSSL参数设置或配置项解释

1. wolfCrypt Only 解释:wolfCrypt是一个开源的、轻量级的、可移植的加密库,支持多种加密算法和协议。选择“wolfCrypt Only”意味着系统或应用将仅使用wolfCrypt库进行加密操作,而不依赖其他加密库。 2. DTLS Support 解释:DTLS(Datagram Transport Layer Security)是一种基于UDP的安全协议,提供类似于

【Python编程】Linux创建虚拟环境并配置与notebook相连接

1.创建 使用 venv 创建虚拟环境。例如,在当前目录下创建一个名为 myenv 的虚拟环境: python3 -m venv myenv 2.激活 激活虚拟环境使其成为当前终端会话的活动环境。运行: source myenv/bin/activate 3.与notebook连接 在虚拟环境中,使用 pip 安装 Jupyter 和 ipykernel: pip instal

沁恒CH32在MounRiver Studio上环境配置以及使用详细教程

目录 1.  RISC-V简介 2.  CPU架构现状 3.  MounRiver Studio软件下载 4.  MounRiver Studio软件安装 5.  MounRiver Studio软件介绍 6.  创建工程 7.  编译代码 1.  RISC-V简介         RISC就是精简指令集计算机(Reduced Instruction SetCom

log4j2相关配置说明以及${sys:catalina.home}应用

${sys:catalina.home} 等价于 System.getProperty("catalina.home") 就是Tomcat的根目录:  C:\apache-tomcat-7.0.77 <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} [%t] %-5p %c{1}:%L - %msg%n" /> 2017-08-10

DM8数据库安装后配置

1 前言 在上篇文章中,我们已经成功将库装好。在安装完成后,为了能够更好地满足应用需求和保障系统的安全稳定运行,通常需要进行一些基本的配置。下面是一些常见的配置项: 数据库服务注册:默认包含14个功能模块,将这些模块注册成服务后,可以更好的启动和管理这些功能;基本的实例参数配置:契合应用场景和发挥系统的最大性能;备份:有备无患;… 2 注册实例服务 注册了实例服务后,可以使用系统服务管理,

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络

配置InfiniBand (IB) 和 RDMA over Converged Ethernet (RoCE) 网络 服务器端配置 在服务器端,你需要确保安装了必要的驱动程序和软件包,并且正确配置了网络接口。 安装 OFED 首先,安装 Open Fabrics Enterprise Distribution (OFED),它包含了 InfiniBand 所需的驱动程序和库。 sudo