ASP.NET网站开发——安全验证
程序员文章站
2022-04-14 22:54:22
...
安全验证
一、ASP.NET的安全模式
1.安全的必要性:
(1)构造特殊的链接地址,导致文件内的数据泄漏。
(2)数据库泄露。
(3)安全防范的首要策略:所有的HTTP访问都要经过IIS,所以限制IIS的安全性是关键。
2.安全模式的概念:根据所请求资源的类型,IIS能够自己处理请求,也可以不自己处理请求。如果资源请求一个ASPX页面,则IIS将请求经过身份验证用户(或匿名用户)的安全令牌一起传递给ASP.NET。接下来要发生的事情就取决于ASP.NET的配置。
3.ASP.NET支持的4种授权方法:
(1)Windows:IIs验证,在内联网环境中非常有用。
(2)Passport:微软集中式身份验证,一次登录便可访问所有成员站点,需要收费。
(3)Form:窗体验证,验证帐号密码,Web编程最佳最流行的验证方式。
(4)None:表示ASP.NET自己根本不执行身份验证,完全依赖IIS身份验证。
4.认证和授权机制:
5.基于窗体的身份授权模式
6.<forms>元素的主要属性
from验证示例:
首先在web.config中加入以下代码:
<!--
通过 <authentication> 节可以配置
安全身份验证模式,ASP.NET
使用该模式来识别来访用户身份。
-->
<!--<authentication mode="Windows" />-->
<authentication mode="Forms">
<forms loginUrl="login.aspx" defaultUrl="index.aspx">
<credentials passwordFormat="Clear">
<user name="admin" password="admin"/>
</credentials>
</forms>
</authentication>
<authorization>
<deny users="?"/>
</authorization>
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节
可以配置相应的处理步骤。具体而言,
开发人员通过该节可配置要显示的 html 错误页,
以代替错误堆栈跟踪。
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
-->
创建三个页面分别是index.aspx,useraspx,login.aspx
login页面布局如下:
在按钮里添加事件如下:
protected void Button1_Click(object sender, EventArgs e)
{
string name = TextBox1.Text;
string pwd = TextBox2.Text;
if (FormsAuthentication.Authenticate(name,pwd))
{
FormsAuthentication.RedirectFromLoginPage(name,false);
// Response.Write(FormsAuthentication.HashPasswordForStoringInConfigFile(pwd,"MD5"));
}
if (name == "admin" && pwd == "123456")
{
FormsAuthentication.RedirectFromLoginPage(name, false);
}
else if (name == "user" && pwd == "123456")
{
Response.Redirect("user.aspx");
}
}
以下是运行结果:
会跳转到index.aspx页面
输入另一个帐号密码会跳转到user.aspx页面
对密码进行加密可以修改以下代码:
protected void Button1_Click(object sender, EventArgs e)
{
string name = TextBox1.Text;
string pwd = TextBox2.Text;
if (FormsAuthentication.Authenticate(name,pwd))
{
//FormsAuthentication.RedirectFromLoginPage(name, false);
Response.Write(FormsAuthentication.HashPasswordForStoringInConfigFile(pwd,"MD5"));
}
//if (name == "admin" && pwd == "123456")
//{
// FormsAuthentication.RedirectFromLoginPage(name, false);
//}
//else if (name == "user" && pwd == "123456")
//{
// Response.Redirect("user.aspx");
//}
}
运行结果如下:
对密码进行加密有三种方式:
form验证总结:
上一篇: 终端中 npm安装报错 webpack
下一篇: HashMap为什么线程不安全
推荐阅读
-
ASP.NET MVC5网站开发之实现数据存储层功能(三)
-
ASP.NET MVC5网站开发之添加删除重置密码修改密码列表浏览管理员篇2(六)
-
ASP.NET MVC5网站开发之业务逻辑层的架构和基本功能 (四)
-
ASP.NET MVC5网站开发之用户添加和浏览2(七)
-
ASP.NET MVC5网站开发之用户资料的修改和删除3(七)
-
ASP.NET MVC5网站开发之登录、验证和注销管理员篇1(六)
-
ASP.NET MVC5网站开发之网站设置(九)
-
ASP.NET MVC5网站开发之展示层架构(五)
-
ASP.NET MVC5网站开发之用户角色的后台管理1(七)
-
php安全开发 添加随机字符串验证,防止伪造跨站请求