zoukankan      html  css  js  c++  java
  • ASP.NET2.0 Login控件怎么没有用户管理的控件呢?

    ASP.NET2.0 Login控件怎么没有用户管理的控件呢?

    角色控制与管理

     

    认证与授权机制

    使用用户管理控件

    成员资格与角色管理

     

    一、ASP.NET 2.0 安全性

    必要性

    对于网站而言,用户身份认证与权限管理是非常重要的部分。

    通过用户名和密码,对用户进行身份验证,并指派他可访问的资源,这部分工作一直都是网站开发的重要内容。

     

    在另外一些情况下,需要根据用户的身份进行权限识别,不同用户访问相同页面,也需要显示不同内容。

    这涉及到用户权限管理部分,也是网站开发的核心内容。

     

    二、ASP.NET 2.0 角色控制概述

    • ASP.NET 2.0membershiprolemanager能够非常好的解决这个问题,不但可以对用户的登陆信息进行统一管理,还可以就用户的权限进行分类管理,让开发者方便的就网站权限与安全性进行设定。

    • ASP.NET 2.0Login控件更提供了一种非常方便的建造登陆与用户管理信息的方法。

    三、认证与授权

    • ASP.NET通过与IIS协同工作来进行授权管理。共两种身份认证方式

     1通过查询acls列表或者许可证来判定该访问是否拥有浏览的权利。

     2.通过URL认证

     

    当用户以访问某网站的时候。两种授权方式分别会进行不同的动作

    第一种认证方式会根据用户的登陆信息来判定asp.net针对该用户所指定的系统帐号,然后再判断该系统帐号是否对被请求的本地资源有访问权限。

    第二种身份认证方式通过检查asp.net配置文件来进行授权认证。

     

    • Asp.net的页面认证方式中,可以使用以下三种方式进行身份认证。

    通过修改config文件中的authentication属性,可以配置不同的认证方式

     

    1.使用PassPort SDK进行二次开发Passport

    2.基于cookie的身份认证机制Forms

    3.基于windows身份验证,首先判断windows用户的身份和组

    4.不进行授权与身份验证None

     

    描述取值

    <configuration>

    <system.web>

    <authentication mode="Forms"/> /forms方式

    </system.web>

    </configuration>

     

    1Windows认证方式

    • Window认证方式通过使用

    windowsprincipal类对用户的windows身份进行判定,然后根据用户所属的windows身份组来进行认证。

    需要在wen.config里加上 <authentication mode="Windows"/>

     

    2Form认证方式

    • From认证方式是在窗体内提供用户输入ID和密码的地方,并根据用户输入的ID和密码进行身份认证。

    • Form认证方式同时还使用cookie记录用户的信息,当用户访问其他页面的时候,程序通过访问cookie来获得用户的身份信息。

    Form认证方式配置文件

    <configuration>

    <system.web>

    <authentication mode="Forms"/> <authorization>

    <forms name=".ASPXCOOKIEDEMO"

    loginUrl="login.aspx" protection="All" timeout="30"

    path="/">

    <!-- protection="[All|None|Encryption|Validation]" -->

    </forms>

    <deny users="?" />

    </authorization>

    </system.web>

    </configuration>

     

    配置文件中的属性意义如下表所示

    ProtectionCookie被保存的方式

    PathCookie的保存路径

    TimeOutCookie的存活时间默认值是30分钟

    NameCookie的名字,注意,如果一个服务器有很多应用的话,要给cookie其不同的名字

    LoginUrl指定一个用于登陆的页面

     

    Protection属性

    • Protection是用来描述cookie的保存方式的,有下列四个可选择项目

    All--同时使用EncryptionValidation

    Validation--监视cookie,保证传输过程中不会被监听或者篡改。但是并不对cookie进行加密。

    Encryption--使用des或者三层descookie进行加密,但是并不对cookie传输中是否被监听或篡改进行监视

    None--不使用任何方法保护cookie

     

    使用文件记录用户的帐户和密码

    用户还可以通过指定可访问的用户名和密码来指定访问用户。

    • <authentication>

    • <credentials passwordFormat="SHA1" >

    • <user name="Mary"

    password="94F85995C7492EEC546C321821AA4BECA

    9A3E2B1"/>

    • <user name="John"

    password="5753A498F025464D72E088A9D5D6E87259

    2D5F91"/>

    • </credentials>

    • </authentication>

     

    在指定密码的保存方式时,可以指定密码的存放方式,有3种方式。如下表所示

    使用MD5进行加密MD5

    使用SHA1进行加密SHA1

    不加密进行存储Clear

     

    用户访问还可以通过定制访问规则来实现对用户的角色分配。

    • <authorization>

    • <allow users="someone@www.frontfree.com" />

    • <allow roles="Admins" />

    • <deny users="*" /> //所有用户禁用如果是?表示匿名用户禁用

    • </authorization>

    以上代码指定只有someone@www.frontfree.com的用户可以访问该站点,并且该用户具有的权限是管理员

     

    web.config里,同样可以通过配置alldeny属性来对访问用户的Id,访问方法进行设定

    • <allow VERB="POST" users="John,Mary" />

    • <deny VERB="POST" users="*" />

    • <allow VERB="GET" users="*" />

     

    • Form认证演示

    使用用户管理控件

    • Login,Loginstatus,CreateUserWizard控件

    示例

    • LoginView示例

    • ChangePassword示例

     

    四、成员管理

    成员管理特性基于membershipmenbershipuser两个类。可以使用membership类为asp.net创建用户

    • membership类还可以完成以下工作 

    建立一个新的membershipuser 

    可以对用户身份进行验证

      找回一个membershipuser实例

      更新一个membershipuser实例

      通过不同条件寻找一个用户

      获得当前在线用户数量

      删除一个已经不再需要的帐户

     访问一个membership的属性

     找回一个用户的密码

     修改一个用户的密码

     修改一个用户的密码问题以及密码问题的答案

     为一个已经因为多次尝试密码失败而锁定的用户解除锁定。

     

    角色管理

    角色管理基于role类实现。

    通过角色管理类,可以实现以下工作

    新建一种角色

    删除一种角色

    给一个用户分配角色

    去除一个用户的角色

    判断用户是否被授权给一个特殊的角色

    在一种角色中寻找一个用户

    从一个用户信息中获得他所具有的角色信息

     

    1.用户管理

    创建用户

    通过调用Membershipcreateuser方法,

    可以创建用户。需要注意的是membership的密码要求长于7位,并且需要至少包括一个特殊字符。

     

    用户登陆以及访问用户属性

    下面使用Membershiip中的validateuser方法来确认用户是否合法。

    • Membership还提供了getuser方法返回一个membershipuser类,用以对获得用户的属性信息。

     

    用户登陆

    用户帐户信息显示

     

    更新用户属性

    通过使用dataview和一个Membership相结合,可以方便的修改用户的注册信息。

    更改用户信息演示

     

    解除锁定

    当用户尝试密码次数过多时,系统会把用户的帐户锁定,可以通过Membershipuserislockout属性来判断用户是否被锁定,如果用户被锁定了,可以使用unlockuser方法来解除锁定。

    解除用户锁定

     

    删除用户

    可以通过调用Membershipdeleteuser方法来删除一个用户。并通过返回值来判定删除是否成功。

    删除用户

     

    2.角色管理

    角色管理是基于认证用户身份与权限的一种管理方式。下面的几个例子使用角色管理

    添加和删除角色

    通过使用rolescreateroledeleterole方法我们可以添加和删除角色,同时还可以调用

     

    为用户配置角色属性

    可以通过roles类的addusertoroleremoveuserfromrole方法来为用户指定一个角色或者移除一个角色

     

    使用rolemanage对页面进行授权

    还可以通过使用role manage对指定角色的用户进行页面授权。

    通过在web.config里进行配置

    用户授权页测试

  • 相关阅读:
    算法Sedgewick第四版-第1章基础-014一用stack把前置表达式转为后置表达式并计算值
    算法Sedgewick第四版-第1章基础-013一用stack实现自动补全表达式括号
    算法Sedgewick第四版-第1章基础-012一用stack实现输出一个数的二进制形式
    算法Sedgewick第四版-第1章基础-011一用链表实现bag、queue、stack
    算法Sedgewick第四版-第1章基础-010一检查括号是否成对出现
    算法Sedgewick第四版-第1章基础-009一链表与数组的比较及其他数据结构
    算法Sedgewick第四版-第1章基础-008一用数组实现栈(泛型、可变大小)
    算法Sedgewick第四版-第1章基础-007一用两个栈实现简单的编译器
    webApi2 上传大文件代码
    IE8 AJAX 不能正常工作 解决办法
  • 原文地址:https://www.cnblogs.com/whitetiger/p/1078920.html
Copyright © 2011-2022 走看看