关于启明星系统(OA系统,预定系统,请假系统等)开始ASP.NET身份验证

启明星系统推荐是安装在内网里,因此,系统采用了较为简单的身份验证。对于放在公网里的启明星系统,请务必开启ASP.NET身份验证功能。

身份验证与授权其实是安全的两个方面:所谓身份验证,就是你有没有钥匙进入房间,所谓授权,就是你进入房间可以打开哪个抽屉。

开启启明星身份验证相当于让攻击装无法进入房间,自然无法攻击。但是,如果攻击者进入房间后,就可能执行SQL注入。

要开启身份验证,只要在web.config里增加如下配置即可。

 

 

 

另外,还需要让用户将密码复杂度设置复杂些,否则,就如同虚设。如下,

    <asp:RegularExpressionValidator ControlToValidate="txt_pwd" ValidationExpression="^.*(?=.{8,})(?=.*[\d])(?=.*[\W]).*$" 
             runat="server" ID="pwd_rule" ErrorMessage="密码必须8位,必须包含一个数字和一个特殊字符"></asp:RegularExpressionValidator>

 

 

 

 以上配置将强制IIS采用ASP.NET内置身份验证,安全性极高!!

 

 

  

 

 

 

 

-------------------------------------以下不是必须,仅供部分用户需要方便使用。-----------------------------------------------------------------------------------

对于放到公网上的用户,上面基本上能给很好的满足系统的安全性。不过可能希望系统自动记住用户登录名和密码。其实在我们的登录代码里

   HttpContext.Current.Response.Cookies[FormsAuthentication.FormsCookieName].Path = path;
   HttpContext.Current.Response.Cookies[FormsAuthentication.FormsCookieName].Expires = DateTime.Now.AddDays(7);

 可是你会发现已经让浏览器记住账户了,但是当增加了 <deny users="?" /> 后,系统似乎记不住cookie,基本上没半天访问还是需要登录。

这是因为ASP.NET会在系统运行时,会自动生成随机的计算机密钥。您可以通过如下方法,来强制ASP.NET使用唯一密钥。

打开IIS。左边选择你的应用程序。然后在右边找到计算机密钥

 

从图中可以看到,在应用程序每次运行时,系统都随机生成一个计算机密钥。

单击右边的“生成密钥”

 

单击应用

 

此时,系统会自动在web.config增加machieKey密钥。这样,使用Form身份验证,就可以记住您的账户了。

安全与方便总是矛盾的,采用固定密钥方便了登录,但是如果密钥被公开,可能安全性会稍微降低。

 

 

posted @ 2016-05-02 23:15 dotnetcms.org工作室 阅读(...) 评论(...) 编辑 收藏