现在的位置: 首页 > 综合 > 正文

NETCF开发之移动Web网站安全性

2013年12月01日 ⁄ 综合 ⁄ 共 2095字 ⁄ 字号 评论关闭

1.1    移动Web网站安全性

ASP.NET中的安全性由三个不同的方面组成:身份验证、授权和加密。.NET FrameworkInternet信息服务(IIS)一起提供这方面的支持,以保护Web应用程序。要编写安全的Web应用程序,了解配置选择将影响应用程序的安全性是很重要的。ASP.NET依赖于IISASP.NET的基础结构来保护应用程序。

.NET Framework支持集成Windows身份验证与授权、Microsoft Passport身份验证和窗体身份验证。但是由于各种原因,目前只有窗体身份验证方式适合用于移动设备。本节介绍适合移动设备的窗体身份验证方案,以及为确保各种设备可以访问应用程序所必须采取的步骤。

1.1.1    窗体身份验证

ASP.NET提供的窗体身份验证支持在应用程序中创建登录页并管理身份验证,并且不需要使用计算机上或域中的单独帐户。窗体身份验证的基本思路是在每个请求中检查身份验证Cookie。如果未找到CookieCookie无效或Cookie过期,则用户被重定向到登录页(默认情况下,该页为login.aspx)。提供窗体身份验证的登录页与任何.aspx页相同。该登录页上有一个供用户提交凭据的窗体。当用户发送要求的数据时,将在代码中执行身份验证检查,然后用户将被重定向到当初请求的页,并且记录该Cookie

某些设备和设备网关在执行重定向时不记录Cookie。在这种情况下,再次发送原始请求时意味不带所需的身份验证Cookie,因此用户将被再次重定向到登录页。对于不支持Cookie的设备,解决方法是将身份验证添加到URL的查询字符串中。

为了演示窗体身份验证,需要修改web.config文件,并且添加默认登录页面login.aspx和一个测试登录的页面FormsAuth.aspx。在web.config文件需要添加以下配置:

 



<authentication mode="Forms" />

<authorization>

<deny users="?" />

</authorization>

 

login.aspx页面的窗体设计如图18-15所示,对应的login.aspx.vb文件代码如清单18-21所示。FormsAuth.aspx页面对应的FormsAuth.aspx.vb文件代码如清单18-22所示。

 

18-15login.aspx窗体设计

 

清单18-21login.aspx.vb


Partial Class WebSecurity

    Inherits System.Web.UI.MobileControls.MobilePage

 

    Protected Sub cmdLogin_Click(ByVal sender As Object, _

ByVal e As System.EventArgs) Handles cmdLogin.Click

        If UserEmail.Text = "software2002" And UserPass.Text = "123456" Then

            Mobile.MobileFormsAuthentication.RedirectFromLoginPage(UserEmail.Text, False)

        Else

            message.Visible = True

            message.Text = "登录用户名和密码不正确"

        End If

    End Sub

End Class

 

18-16FormsAuth.aspx窗体设计

 

清单18-22FormsAuth.aspx.vb


Partial Class FormsAuth

    Inherits System.Web.UI.MobileControls.MobilePage

    Protected Sub formA_Load(ByVal sender As Object, _

ByVal e As System.EventArgs) Handles formA.Load

        label1.Text = String.Format("Welcome {0}", User.Identity.Name)

    End Sub

    Protected Sub cmdLoginOut_Click(ByVal sender As Object, _

ByVal e As System.EventArgs) Handles cmdLoginOut.Click

        Mobile.MobileFormsAuthentication.SignOut()

        ActiveForm = formB

    End Sub

End Class

 

清单18-21中演示了MobileFormsAuthentication的用法。在该示例中验证以software2002为用户名,以123456为密码的用户登录。清单18-22中的System.Web.Mobile.MobileFormsAuthenticationSignOut方法,用于清除Cookie或额外的查询字符串参数。 

抱歉!评论已关闭.