本节为本软件开发的最后一节,主要是设置软件的权限。在ASP.NET2.0中,身份的验证有多种方式,然而Windows和Passprot几乎都不实用。Windows身份验证是基于Windows账户和NTFS ACL令牌的,可以在内联网或一些外联网环境中有效的使用,但在更多的实际运行环境中,Windows身份验证是不合适的,因为访问此Web程序的用户不可能都拥有该应用程序域的Windows帐户。而Passport并不是免费的,要求更严格的安全措施,主要对电子商务等站点才更合适一些,比如:在开发了一个并不是特别重要的Web应用程序之后,在进行验证时,需要你先期对用户验证进行付费,你能够接受吗?

目前在使用身份验证中,最合适的就是Form验证了,通过在程序中进行设置,在用户访问时首先重定向到一个登录的页面上,在输入用户的凭据并成功的进行了验证之后,再重定向到所请求的页面中。而身份信息的保存就要依靠数据库中的身份表了。在本软件中,使用已经在数据库中生成的用户表,并且不再对用户表的维护进行设置,只是演示一种身份验证的方法。

请先在此表内输入一条合法的记录,在用户登录时,将使用此信息进行用户的验证,示例中输入的登录名为admin,口令与登录名称相同,且口令未经加密。

在ASP.NET2.0中,在窗体验证的方式内提供了一个管理用户账户的方法类MemberShip,通过对此类的继承并实现相应的方法后,来解决身份登录的问题,在继承的方法中,实现验证方法ValidateUser:

 1ASP.NET2.0网站开发(9)权限设置    public override bool ValidateUser(string username, string password)
 2

打开web.config文件,修改应用程序的验证方式,将默认的Windows验证方式改为Forms方式,并拒绝显示除指定页外的任何页面信息:

ASP.NET2.0网站开发(9)权限设置    <authentication mode="Forms">
ASP.NET2.0网站开发(9)权限设置      
<forms loginUrl="Default.aspx"/>
ASP.NET2.0网站开发(9)权限设置    
</authentication>
ASP.NET2.0网站开发(9)权限设置    
<authorization>
ASP.NET2.0网站开发(9)权限设置      
<deny users="?"/>
ASP.NET2.0网站开发(9)权限设置    
</authorization>
ASP.NET2.0网站开发(9)权限设置

为应用程序指定身份验证类:

ASP.NET2.0网站开发(9)权限设置    <membership defaultProvider="MProvider">
ASP.NET2.0网站开发(9)权限设置      
<providers>
ASP.NET2.0网站开发(9)权限设置        
<add name="MProvider" type="MProvider, App_Code"/>
ASP.NET2.0网站开发(9)权限设置      
</providers>
ASP.NET2.0网站开发(9)权限设置    
</membership>
ASP.NET2.0网站开发(9)权限设置

最后一步,设置在用户匿名的状态也,也可以使用的资源,比如图片等相关的资源等,如果不进行设置,图片将不能显示、级联样式表也不会被应用程序找到:

ASP.NET2.0网站开发(9)权限设置  <location path="StyleSheet.css">
ASP.NET2.0网站开发(9)权限设置    
<system.web>
ASP.NET2.0网站开发(9)权限设置      
<authorization>
ASP.NET2.0网站开发(9)权限设置        
<allow users="*"/>
ASP.NET2.0网站开发(9)权限设置      
</authorization>
ASP.NET2.0网站开发(9)权限设置    
</system.web>
ASP.NET2.0网站开发(9)权限设置  
</location>
ASP.NET2.0网站开发(9)权限设置  
<location path="images">
ASP.NET2.0网站开发(9)权限设置    
<system.web>
ASP.NET2.0网站开发(9)权限设置      
<authorization>
ASP.NET2.0网站开发(9)权限设置        
<allow users="*"/>
ASP.NET2.0网站开发(9)权限设置      
</authorization>
ASP.NET2.0网站开发(9)权限设置    
</system.web>
ASP.NET2.0网站开发(9)权限设置  
</location>
ASP.NET2.0网站开发(9)权限设置  
<location path="getPic.aspx">
ASP.NET2.0网站开发(9)权限设置    
<system.web>
ASP.NET2.0网站开发(9)权限设置      
<authorization>
ASP.NET2.0网站开发(9)权限设置        
<allow users="*"/>
ASP.NET2.0网站开发(9)权限设置      
</authorization>
ASP.NET2.0网站开发(9)权限设置    
</system.web>
ASP.NET2.0网站开发(9)权限设置  
</location>

 

以下为程序运行时的状态:

1、未登录:

ASP.NET2.0网站开发(9)权限设置

2、登录用户错误:

ASP.NET2.0网站开发(9)权限设置

3、正确登录页面:

ASP.NET2.0网站开发(9)权限设置

经过设置,在用户退出登录的状态下,即使输入单独的页面地址,程序仍将指向登录的页面,等待用户的登录。

《完》

相关文章:

  • 2022-12-23
  • 2021-12-04
  • 2021-08-06
  • 2021-09-26
  • 2021-08-18
  • 2022-12-23
  • 2021-07-19
猜你喜欢
  • 2021-11-09
  • 2022-03-06
  • 2021-06-15
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案