`
luhai1992
  • 浏览: 56714 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

AspNet小结(用户权限)

阅读更多

AspNet 小结

一、主题皮肤

1.  设置页面的主题 Themes 属性

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default"  Theme="SystemThemes"%>

2.  设置所有页面的主题

theme="SystemThemes"

<system.web>

    <pages theme="SystemThemes">

      <controls>

        <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>

      </controls>

    </pages>

3.  设置不同模块的主题

      <location path="Manager">

           <system.web>

                 <pages theme="OtherThemes"></pages>

                   </system.web>

         </location>

 

      注意path 路径不能有~/ 否则不能使用相应主题

二、 站点授权和用户权限 MemeberShip

 1 验证方式

                                     a) Form

b)Window 用于局域网,验证域名和计算机名

c)Passport 微软为企业设计(一般不用)

                     2.webConfig 配置      

                                     <system.web>下的

                               <authentication mode="Forms" />

                              注意: 如果建的是Ajax 网站是不会默认生成以上代码的

                    3. 网站管理工具

                            A 在项目的解决方案视图中含有一个配置图标点击可打开网站管理工具

                            B 可选择身份验证方式 系统会自动生成对应的库

注意:只有刷新App_Data才可看见生成的库

                            C 自动生成的表

a)        aspnet_Users 用户表

b)        aspnet_Roles 权限表

c)        aspnet_UsersInRoles 用户权限表

d)        aspnet_Membership 用户的其他信息

 

 

4. 配置文件

         A)

         Machine.config  配置服务器

一般路径,文件路径,C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\CONFIG

             设置验证信息格式:

                   membership 节点的所有内容copy webconfigsystem.web 节点下

                       <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" //用户是否需要输入提示问题

//若设为true 可将注册控件的相关输入框去掉(需先变为可编辑的控件)

applicationName="/"  登陆页面的作用域

requiresUniqueEmail="false" //注册邮箱必须唯一

 passwordFormat="Hashed" //加密方式

//可以改成其他加密方式如DES但是需修改其提供程序

maxInvalidPasswordAttempts="5" //密码的最大尝试次数 0 代表无限次

minRequiredPasswordLength="7" 最小密码长度minRequiredNonalphanumericCharacters="1" //特殊字符数 没有写0

passwordAttemptWindow="10" //密码输入框的有效时间(单位:分钟)

 passwordStrengthRegularExpression="" 密码验证的正则表达式

/>

      </providers>

</membership>

解析:

     <providers> 设置提供程序

     connectionStringName="LocalSqlServer"//连接字符串的名称

<connectionStrings>

           <add name="CRMConnStr" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|CRM.MDF;Integrated Security=True;User Instance=True"></add>

 

|DataDirectory| 代表项目中的App_Data 文件夹

 

</connectionStrings>

B) 更改配置文件的提供程序

         <add name="CRMSqlMembershipProvider"

//提供程序的名称可以自定义

type="System.Web.Security.SqlMembershipProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ConStr"

             minRequiredPasswordLength="6"

             minRequiredNonalphanumericCharacters="0"

             requiresUniqueEmail="true"

             requiresQuestionAndAnswer="false" />

 

C) 设置Membership 的默认提供程序

         web.config system.web 下的membership 节点下的提供程序只有一个默认为此提供程序不用设定 defaultProvider 属性

<membership defaultProvider="CRMSqlMembershipProvider">

D ) 若自定义的提供程序和machine.config 中的提供程序的名称相同则必须remove 原有的提供程序

<remove name="AspNetSqlMembershipProvider"/>

5. 登陆控件

        a) 得到当前登陆的用户名

                   得到当前的用户名 LoginName 控件

b)         得到当前页面的登陆状态

LoginStatus 控件

c)         CreateUserVizard 控件

              //得到当前控件的制定步骤

         this.CreateUserWizard1.WizardSteps[0];

         this.CreateUserWizard1.WizardSteps[0].FindControl("");

        //得到当前控件的活动步骤

         this.CreateUserWizard1.ActiveStep;

        //得到当前控件的活动步骤的ID

  this.CreateUserWizard1.ActiveStepIndex;

                   常用属性:

                            DisableCreateUser=true; 注册成功后不能使用(禁用)

                            LoginCreatedUser=”false”注册成功后是否处于登陆状态

                            AutoGeneratePassword=”true” 是否自动生成密码

6. 后台得到注册控件的注册信息,和其他注册信息的内容

            //得到当前注册用户的用户名

        ViewState["User"]=this.CreateUserWizard1.UserName;

        //通过当前注册用户的用户名得到用户的ID

        MembershipUser user1 = Membership.GetUser(this.CreateUserWizard1.UserName);

        Guid userid=(Guid)user1.ProviderUserKey;

        //得到当前用户的用户真实姓名和电话

         String  userName=(this.CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("txtUserName") as TextBox).Text;

         String telephone = (this.CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("txtTelephone") as TextBox).Text;

7.后台创建用户

     Membership.CreateUser("用户名", "password", "email", "密码提示问题", true, MembershipCreateStatus.Success);

最后一个参数:一个 MembershipCreateStatus 值,该值指示该用户是否成功创建或用户创建失败的原因。(是一个输出类型的参数)

8 得到登陆用户的用户名

       User.identity.Name  User 的名称在web.config 文件中定义可以更改

9. 用户登陆

       a)登录方式和登录权限设定

       Web.config

<authentication mode="Forms">

<forms loginUrl="~/Login.aspx" name="User" defaultUrl="~/Manager/UserAdd.aspx"></forms>

                 //设定默认登录页面和登录后的跳转页面

           </authentication>

           <authorization>

                 <deny users="?"/>//?代表匿名用户

                 <allow users="*"/>//*代表所有用户

//设置登录权限 阻止匿名用户访问页面允许登录用户访问页面

           </authorization>

       b)解决阻止匿名用户访问页面后登录页面所引用的页面或样式无法显示问题

            

      <location path="validateCode.aspx">

           <system.web>

                 <authorization>

                      <allow users="?"/>

                      <allow users="*"/>

                 </authorization>

           </system.web>

      </location>

//将无限制的页面用location 标签配置 注意:此标签放在System.web 节点外

C)手动登录

       MemberShip.ValidateUser(用户名,密码);

d ) 得到当前登录的人数

       MemberShip.GetMemberShipOnline();

E ) 用户登录时显示验证码

1.       在登录界面中放置一个Image 控件

2.       Image控件的Url设置对应的验证图片页面路径

3.       编写验证页面,并将随机生成的验证码放到Session

  protected void Page_Load(object sender, EventArgs e)

    {

        System.Drawing.Bitmap image = new Bitmap(50, 30);

        Graphics graphics = Graphics.FromImage(image);

        graphics.Clear(Color.Yellow);

        StringBuilder sb = new StringBuilder();

        Random random = new Random();

        for (int i = 0; i < 4; i++)

        {

            sb.Append(random.Next(0, 10));

        }

        Session["ValidateCode"] = sb.ToString();

        Font font = new Font("宋体", 15, FontStyle.Bold | FontStyle.Italic);

 

        //渐变

        System.Drawing.Drawing2D.LinearGradientBrush brush = new System.Drawing.Drawing2D.LinearGradientBrush(new Rectangle(0, 0, image.Width, image.Height), Color.Blue, Color.White, 1.2f, true);

        graphics.DrawString(sb.ToString(), font, brush, 0, 0);

 

        //添加噪音线

        for (int i = 0; i < 3; i++)

        {

            Point p1 = new Point(random.Next(1, image.Width - 1), random.Next(1, image.Height - 1));

            Point p2 = new Point(random.Next(1, image.Width - 1), random.Next(1, image.Height - 1));

            graphics.DrawLine(Pens.Red, p1, p2);

        }

 

        //添加噪音点

        for (int i = 0; i < 50; i++)

        {

            image.SetPixel(random.Next(1, image.Width - 1), random.Next(1, image.Height - 1), colors[random.Next(0, colors.Length)]);

        }

 

        graphics.Save();

        Response.ContentType = "image/gif";

        image.Save(Response.OutputStream, System.Drawing.Imaging.ImageFormat.Gif);

        graphics.Dispose();

text-align: left; text-indent: 0cm; margin:

0
0
分享到:
评论

相关推荐

    ASPNET用户权限管理系统

    (1)通用的用户权限系统,可以创建用户、角色、模块、角色模块、用户角色,构建成自定久系统功能菜单,当前系统支持二级层级菜单 (2)系统共用五张表,有用户表、模块表、角色表、权限表(角色模块表)、用户角色表 ...

    ASPNET BPMS桌面版权限管理系统源码

    用户最终的权限取角色权限和用户权限的集合。 3、角色管理: 一组权限的集合,根据权限的大小可以定义多个。 4、模块管理: 菜单功能的管理,可以是系统中的页面,也可以是其它系统的页面地址统一纳入到同一套权限...

    在线购物网站实现使用.net开发 使用ASPNET技术 实现了购物车、用户权限组管理、匿名用户登录

    使用.net开发 使用ASPNET技术 实现了购物车、用户权限组管理、匿名用户登录

    ASPNET敏捷快速开发权限后台管理框架

    此项目可以方便快速进行二次开发,包含菜单权限,操作日志记录,动态数据分页等常用功能,拿去就可以在此基础修改进行项目开发,注释清晰明了! 二、注意事项 开发工具:VS2013,开发语言:C# 数据库:MySql,...

    ASPNET权限管理后台框架源码 适合oa,erp二开使用

    7、公司小软件、网站后台、OA平台等等都可使用该框架完成快速开发 8、简洁、大方、美观。 三、注意事项 1、开发环境为Visual Studio 2013,数据库为SqlServer2012,使用.net 4.5开发。 2、数据库文件在DB文件夹...

    ASPNET通用OA+权限管理系统源码

    系统后台分为:组织结构(部门,职位),角色管理,权限管理(权限组,权限),字典管理(字典组,字典),菜单管理,帐户管理,日志管理(操作日志,系统日志,登录日志),模块管理 5.内网分为:请假管理,便签管理,加班管理,...

    ASPNET完整权限管理源码

    完整权限管理源码 系统演示了 添加用户,然后给用户分配角色,不同的角色可以设置各种权限. 被设置权限的用户登陆系统时,系统菜单中会展示他权限范围内的栏目

    基于ASPNET的用户权限设计与实现.pdf

    摘 要 针对管理信息系统中用户权限的复杂性 提出了依据 的基本思想 利用 中的用户控件技术 设 ! $ $ $ 23)4 )*+,-./ ’ $ )在管理信息系统中用户权限控制的一种具体实现方法 实际运行结果表明 本文的设计方案具有...

    ASPNET酒店管理权限管理系统

    1、后台管理功能:用户权限管理,角色管理资源管理,资源分类,权限配置,系统管理,网站设置,网站日志,用户管理,积分管理,投诉建议,订单维护,预定房间,酒店维护,房间类型维护(可以批量修改房间价格),...

    ASPNET目录权限控制

    ASPNET目录权限控制实例.可能对新手帮助比较大。欢迎大家看看,好的资源只有共享出来才能显示其价值

    ASPNET通用权限管理系统源码

    2、用户权限:菜单模块管理,组织架构管理,职位列表管理,用户管理 三、注意事项 2、数据库配置请看TableConfig.xml 3.DMSFrame是一个完全采用LINQ写法来访问数据库的一个框架,目前支持MSSQL,MYSQL两种数据库,...

    aspnet的执行步骤aspnet的执行步骤aspnet的执行步骤

    aspnet的执行步骤aspnet的执行步骤aspnet的执行步骤aspnet的执行步骤aspnet的执行步骤aspnet的执行步骤aspnet的执行步骤aspnet的执行步骤aspnet的执行步骤aspnet的执行步骤aspnet的执行步骤

    Aspnet Mvc教程 5. 基本工作流程

    Aspnet Mvc教程 1.说明 01:06 Aspnet Mvc教程 2.准备工作 02:37 Aspnet Mvc教程 3. 建立并运行 02:46 Aspnet Mvc教程 4.默认程序结构 04:18 Aspnet Mvc教程 5. 基本工作流程 05:13 Aspnet Mvc教程 6.mvc理论讲解...

    EasyUI+JQuery统一权限管理ASPNET源码

    技术特点:EasyUI,JQuery,统一权限管理系统(aspx面完成显示 ashx处理所以请求) 功能描述: 商家管理:促销活动 产品管理 卡密管理 财务管理 促销商家 合作商家 慈善管理:慈善排名 慈善比例管理 奖池管理:已捐赠...

    aspnet生命周期 介绍

    aspnet生命周期 aspnet生命周期 aspnet生命周期 aspnet生命周期

    aspnet

    自己写的ASP.NET2.0例子,主,子,叶三重数据表资料编辑,并使用了ATLAS

    ASPNET实例项目大全

    ASPNET实例项目大全 ASPNET实例项目大全

    轻量级用户权限管理

    采用Spring、MyBatis、SpringMVC框架,开发的一套权限系统,极低门槛,拿来即用。 具有特点:如下 灵活的权限控制,可控制到页面或按钮,满足绝大部分的权限需求 完善的部门管理及数据权限,通过注解实现数据权限...

    core3通用权限管理ASPNET系统

    3,对权限的操作,控制到单个按钮,一个用户可以属于多个用户组,权限则取所有用户组权限的集合 4,支持无限极菜单 三、注意事项 1、开发环境为Visual Studio 2017(最新版),数据库为SQLServer2014,使用.net 4.0...

    ASPNET论坛ASPNET论坛

    ASPNET论坛ASPNET论坛ASPNET论坛ASPNET论坛ASPNET论坛ASPNET论坛

Global site tag (gtag.js) - Google Analytics