返回首页

ASP.NET-安全

时间:2020-01-16 16:13来源:知行网www.zhixing123.cn 编辑:麦田守望者

 在站点中实现安全性具有以下方面:

  • 认证:这是确保用户身份和真实性的过程。ASP.NET允许四种类型的身份验证:

  • Windows验证
  • 表格认证
  • 护照认证
  • 自订验证
  • 授权:这是定义特定角色并将其分配给特定用户的过程。

  • 机密性:它涉及加密客户端浏览器和Web服务器之间的通道。

  • 完整性:涉及维护数据的完整性。例如,实现数字签名。

  • 基于表单的身份验证

    传统上,基于表单的身份验证涉及编辑web.config文件并添加具有适当身份验证代码的登录页面。

    可以编辑web.config文件,并在其上编写以下代码:

    <configuration>  <system.web>    <authentication mode="Forms">       <forms loginUrl ="login.aspx"/>    </authentication>        <authorization>       <deny users="?"/>    </authorization> </system.web> ... ... </configuration>

    上面的代码片段中提到的login.aspx页面可能在文件后面包含以下代码,其中包含用于身份验证的用户名和密码。

    protected bool authenticate(String uname, String pass) {    if(uname == "Tom")    {       if(pass == "tom123")          return true;    }        if(uname == "Dick")    {       if(pass == "dick123")          return true;    }        if(uname == "Harry")    {       if(pass == "har123")          return true;    }        return false; }  public void OnLogin(Object src, EventArgs e) {    if (authenticate(txtuser.Text, txtpwd.Text))    {       FormsAuthentication.RedirectFromLoginPage(txtuser.Text, chkrem.Checked);    }    else    {       Response.Write("Invalid user name or password");    } }

    请注意,FormsAuthentication类负责身份验证过程。

    但是,Visual Studio允许您通过“网站管理”工具无缝地轻松实现用户创建,身份验证和授权,而无需编写任何代码。该工具允许创建用户和角色。

    除此之外,ASP.NET还带有现成的登录控件集,该控件具有为您执行所有作业的控件。

    实施基于表单的安全性

    要设置基于表单的身份验证,您需要以下内容:

  • 支持身份验证过程的用户数据库
  • 使用数据库的网站
  • 用户帐号
  • 的角色
  • 限制用户和小组活动
  • 默认页面,用于显示用户的登录状态和其他信息。
  • 登录页面,允许用户登录,检索密码或更改密码
  • 要创建用户,请执行以下步骤:

    步骤(1):选择网站-> ASP.NET配置打开Web应用程序管理工具。

    步骤(2):单击“安全性”选项卡。

    安全标签

    步骤(3):通过选择“来自Internet”单选按钮,将身份验证类型选择为“基于表单的身份验证”。

    认证类型

    步骤(4):点击“创建用户”链接以创建一些用户。如果您已经创建了角色,则可以在此阶段将角色分配给用户。

    创建用户链接

    步骤(5):创建一个网站并添加以下页面:

  • Welcome.aspx
  • Login.aspx
  • CreateAccount.aspx
  • 密码恢复.aspx
  • ChangePassword.aspx
  • 步骤(6):从工具箱的登录部分将LoginStatus控件放在Welcome.aspx上。它具有两个模板:LoggedIn和LoggedOut。

    在LoggedOut模板中,有一个登录链接,而在LoggedIn模板中,该控件上有一个注销链接。您可以从“属性”窗口更改控件的登录和注销文本属性。

    登录状态控制

    步骤(7):从LoginStatus控件下面的工具箱中放置一个LoginView控件。在这里,您可以放置​​文本和其他控件(超链接,按钮等),这些控件根据用户是否登录而显示。

    该控件有两个视图模板:匿名模板和LoggedIn模板。选择每个视图并为每个模板写一些要显示给用户的文本。文字应放在标有红色的区域。

    登录视图控件

    步骤(8):应用程序的用户由开发人员创建。您可能希望允许访问者创建用户帐户。为此,在LoginView控件下添加一个链接,该链接应链接到CreateAccount.aspx页。

    步骤(9):在创建帐户页面上放置一个CreateUserWizard控件。将此控件的ContinueDestinationPageUrl属性设置为Welcome.aspx。

    CreateUserWizard控件

    步骤(10):创建登录页面。在页面上放置一个登录控件。LoginStatus控件自动链接到Login.aspx。要更改此默认设置,请在web.config文件中进行以下更改。

    例如,如果要将登录页面命名为signup.aspx,请将以下行添加到web.config的<authentication>部分:

    <configuration>    <system.web>       <authentication mode="Forms">          <forms loginUrl ="signup.aspx" defaultUrl = “Welcome.aspx” />       </authentication>    </system.web> </configuration>

    步骤(11):用户经常忘记密码。PasswordRecovery控件可帮助用户获得对该帐户的访问权限。选择登录控件。打开其智能标记,然后单击“转换为模板”。

    自定义控件的UI,以将超链接控件放置在登录按钮下,该按钮应链接到PassWordRecovery.aspx。

    密码恢复控制

    步骤(12):在密码恢复页面上放置一个PasswordRecovery控件。该控件需要一个电子邮件服务器将密码发送给用户。

    密码恢复控制2

    步骤(13):在Welcome.aspx中的LoginView控件的LoggedIn模板中,创建指向ChangePassword.aspx页的链接。

    ChangePassword控制

    步骤(14):在更改密码页面上放置一个ChangePassword控件。此控件也有两个视图。

    ChangePassword控件2

    现在运行该应用程序,并观察不同的安全操作。

    要创建角色,请返回到Web应用程序管理工具,然后单击“安全性”选项卡。单击“创建角色”,然后为应用程序创建一些角色。

    Web应用程序管理

    单击“管理用户”链接,然后为用户分配角色。

    管理用户

    IIS身份验证:SSL

    安全套接字层或SSL是用于确保安全连接的协议。启用S​​SL后,浏览器会加密发送到服务器的所有数据,并解密来自服务器的所有数据。同时,服务器对与浏览器之间的所有数据进行加密和解密。

    安全连接的URL以HTTPS而不是HTTP开头。浏览器会使用安全连接显示小锁。当浏览器最初尝试使用SSL通过安全连接与服务器通信时,服务器将通过发送其数字证书来对自身进行身份验证。

    要使用SSL,您需要从受信任的证书颁发机构(CA)购买数字安全证书,并将其安装在Web服务器中。以下是一些值得信赖的知名认证机构:

  • www.verisign.com
  • www.geotrust.com
  • www.thawte.com
  • SSL内置在所有主要的浏览器和服务器中。要启用SSL,您需要安装数字证书。各种数字证书的强度取决于加密期间生成的密钥的长度。长度越长,证书和连接就越安全。

    强度 描述
    40位
    大多数浏览器都支持,但容易破解。
    56位
    比40位强。
    128位
    很难破解,但所有浏览器都不支持。
    ------分隔线----------------------------
    标签(Tag):
    ------分隔线----------------------------
  • 上一篇:ASP.NET-LINQ
  • 下一篇:ASP.NET-数据缓存
  • 推荐内容
  • ASP.NET-数据缓存

    什么是缓存? 缓存是一种将经常使用的数据/信息存储在内存中的技术,因此,当下次需要...

  • ASP.NET-安全

    在站点中实现安全性具有以下方面: 认证 :这是确保用户身份和真实性的过程。 ASP.NET...

  • ASP.NET-LINQ

    大多数应用程序都以数据为中心,但是大多数数据存储库都是关系数据库。 多年来,设计...

  • ASP.NET-调试

    通过调试,开发人员可以逐步查看代码的工作方式,变量的值如何更改,对象的创建和销毁...

  • ASP.NET-错误处理

    ASP.NET中的错误处理包括三个方面: 跟踪 -在页面级别或应用程序级别跟踪程序执行。 ...

  • ASP.NET-个性化

    网站设计用于用户的反复访问。 个性化允许站点记住用户身份和其他信息详细信息,并为...

  • 猜你感兴趣
  • 教育技术学动态
  • 教育技术学论文
  • 理论研究
  • 应用研究
  • 资源收藏
  • 百家观点
  • 英文文献
  • 中国电化教育
  • 电化教育研究
  • 中国远程教育
  • 开放教育研究
  • 现代教育技术
  • 远程教育杂志
  • 现代远距离教育
  • 中国教育信息化
  • 中国信息技术教育
  • 中小学信息技术
  • Flash龙8国际平台入口
  • Photoshop龙8国际平台入口
  • 3DMAX龙8国际平台入口
  • AutoCAD龙8国际平台入口
  • CorelDRAW龙8国际平台入口
  • Matlab龙8国际平台入口
  • 其他龙8国际平台入口
  • .Net龙8国际平台入口
  • Asp龙8国际平台入口
  • Php龙8国际平台入口
  • Jsp龙8国际平台入口
  • Ajax龙8国际平台入口
  • Android教程
  • 其他龙8国际平台入口
  • Word教程
  • Excel教程
  • PowerPoint教程
  • Ubuntu教程
  • 其他教程
  • 课件下载
  • 软件下载
  • 视频教程下载
  • 其他下载
  • 教案大全
  • 试题大全
  • 课件大全
  • 其他大全
  • 人像摄影
  • 风光摄影