📅  最后修改于: 2020-11-21 05:55:35             🧑  作者: Mango
在站点中实现安全性具有以下方面:
验证:这是确保用户身份和真实性的过程。 ASP.NET允许四种类型的身份验证:
授权:这是定义特定角色并将其分配给特定用户的过程。
机密性:它涉及加密客户端浏览器和Web服务器之间的通道。
完整性:涉及维护数据的完整性。例如,实现数字签名。
传统上,基于表单的身份验证涉及编辑web.config文件并添加具有适当身份验证代码的登录页面。
可以编辑web.config文件,并在其上编写以下代码:
...
...
上面的代码片段中提到的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) :创建一个网站并添加以下页面:
步骤(6) :在工具箱登录部分的Welcome.aspx上放置一个LoginStatus控件。它具有两个模板:LoggedIn和LoggedOut。
在LoggedOut模板中,有一个登录链接,而在LoggedIn模板中,该控件上有一个注销链接。您可以从“属性”窗口更改控件的登录和注销文本属性。
步骤(7) :在LoginStatus控件下方的工具箱中放置一个LoginView控件。在这里,您可以放置文本和其他控件(超链接,按钮等),这些控件根据用户是否登录而显示。
该控件有两个视图模板:匿名模板和LoggedIn模板。选择每个视图并为每个模板写一些要显示给用户的文本。文本应放在标有红色的区域。
步骤(8) :应用程序的用户由开发人员创建。您可能希望允许访问者创建用户帐户。为此,在LoginView控件下添加一个链接,该链接应链接到CreateAccount.aspx页。
步骤(9) :在创建帐户页面上放置一个CreateUserWizard控件。将此控件的ContinueDestinationPageUrl属性设置为Welcome.aspx。
步骤(10) :创建登录页面。在页面上放置一个登录控件。 LoginStatus控件自动链接到Login.aspx。要更改此默认设置,请在web.config文件中进行以下更改。
例如,如果要将登录页面命名为signup.aspx,请将以下行添加到web.config的
步骤(11) :用户经常忘记密码。 PasswordRecovery控件可帮助用户获得对该帐户的访问权限。选择登录控件。打开其智能标记,然后单击“转换为模板”。
自定义控件的UI,以将超链接控件放置在登录按钮下,该按钮应链接到PassWordRecovery.aspx。
步骤(12) :在密码恢复页面上放置一个PasswordRecovery控件。该控件需要一个电子邮件服务器将密码发送给用户。
步骤(13) :在Welcome.aspx中的LoginView控件的LoggedIn模板中,创建指向ChangePassword.aspx页的链接。
步骤(14) :在更改密码页面上放置一个ChangePassword控件。此控件也有两个视图。
现在运行该应用程序,并观察不同的安全操作。
要创建角色,请返回到Web应用程序管理工具,然后单击“安全性”选项卡。单击“创建角色”,然后为应用程序创建一些角色。
单击“管理用户”链接,然后为用户分配角色。
安全套接字层或SSL是用于确保安全连接的协议。启用SSL后,浏览器会加密发送到服务器的所有数据,并解密来自服务器的所有数据。同时,服务器对与浏览器之间的所有数据进行加密和解密。
安全连接的URL以HTTPS而不是HTTP开头。浏览器会使用安全连接显示小锁。当浏览器最初尝试使用SSL通过安全连接与服务器通信时,服务器将通过发送其数字证书来对自身进行身份验证。
要使用SSL,您需要从受信任的证书颁发机构(CA)购买数字安全证书,并将其安装在Web服务器中。以下是一些值得信赖的知名认证机构:
SSL内置在所有主要的浏览器和服务器中。要启用SSL,您需要安装数字证书。各种数字证书的强度取决于加密期间生成的密钥的长度。长度越长,证书和连接的安全性就越高。
Strength | Description |
---|---|
40 bit | Supported by most browsers but easy to break. |
56 bit | Stronger than 40-bit. |
128 bit | Extremely difficult to break but all the browsers do not support it. |