當(dāng)前位置:視頻教程網(wǎng) > 教育知識(shí) > 正文
發(fā)布:2023-11-05 02:40:00編輯:視頻君來源:視頻教程網(wǎng)
ASP空間是Active
Server
Page的縮寫,意為“動(dòng)態(tài)服務(wù)器主頁”。ASP是微軟公司開發(fā)的代替CGI腳本程序的一種應(yīng)用,它可以與數(shù)據(jù)庫和其它程序進(jìn)行交互,是一種簡單、方便的編程工具。ASP的網(wǎng)頁文件的格式是.asp,現(xiàn)在常用于各種動(dòng)態(tài)網(wǎng)站中。
ASP是一種服務(wù)器端腳本編寫環(huán)境,可以用來創(chuàng)建和運(yùn)行動(dòng)態(tài)網(wǎng)頁或Web應(yīng)用程序。ASP網(wǎng)頁可以包含HTML標(biāo)記、普通文本、腳本命令以及COM組件等。利用ASP可以向網(wǎng)頁中添加交互式內(nèi)容(如在線表單),也可以創(chuàng)建使用HTML網(wǎng)頁作為用戶界面的web應(yīng)用程序。1.說到PHP空間,首先要講PHP。PHP,一個(gè)嵌套的縮寫名稱,是英文超級文本預(yù)處理語言(PHP:Hypertext
Preprocessor)的縮寫。PHP
是一種HTML內(nèi)嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在服務(wù)器端執(zhí)行的嵌入HTML文檔的腳本語言,語言的風(fēng)格有類似于C語言,現(xiàn)在被很多的網(wǎng)站編程人員廣泛的運(yùn)用。PHP
獨(dú)特的語法混合了
C、Java、Perl
以及
PHP
自創(chuàng)新的語法。它可以比
CGI
或者
Perl
更快速的執(zhí)行動(dòng)態(tài)網(wǎng)頁。用PHP做出的動(dòng)態(tài)頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執(zhí)行,執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多;與同樣是嵌入HTML文檔的腳本語言JavaScript相比,PHP在服務(wù)器端執(zhí)行,充分利用了服務(wù)器的性能;PHP執(zhí)行引擎還會(huì)將用戶經(jīng)常訪問的PHP程序駐留在內(nèi)存中,其他用戶在一次訪問這個(gè)程序時(shí)就不需要重新編譯程序了,只要直接執(zhí)行內(nèi)存中的代碼就可以了,這也是PHP高效率的體現(xiàn)之一。PHP具有非常強(qiáng)大的功能,所有的CGI或者JavaScript的功能PHP都能實(shí)現(xiàn),而且支持幾乎所有流行的數(shù)據(jù)庫以及操作系統(tǒng)。 2.
能夠運(yùn)行PHP程序的主機(jī)空間,我們把它稱為PHP空間(虛擬主機(jī))
https及https的本地測試環(huán)境搭建。asp.net結(jié)合https的代碼實(shí)現(xiàn)http網(wǎng)站轉(zhuǎn)換成https網(wǎng)站,以及之后遇到的問題等。
一:什么是https
SSL(Security Socket Layer)全稱是加密套接字協(xié)議層,它位于HTTP協(xié)議層和TCP協(xié)議層之間,用于建立用戶與服務(wù)器之間的加密通信,確保所傳遞信息的安全性,同時(shí)SSL安全機(jī)制是依靠數(shù)字證書來實(shí)現(xiàn)的。
SSL基于公用密鑰和私人密鑰,用戶使用公用密鑰來加密數(shù)據(jù),但解密數(shù)據(jù)必須使用相應(yīng)的私人密鑰。使用SSL安全機(jī)制的通信過程如下:用戶與IIS
服務(wù)器建立連接后,服務(wù)器會(huì)把數(shù)字證書與公用密鑰發(fā)送給用戶,用戶端生成會(huì)話密鑰,并用公共密鑰對會(huì)話密鑰進(jìn)行加密,然后傳遞給服務(wù)器,服務(wù)器端用私人密
鑰進(jìn)行解密,這樣,用戶端和服務(wù)器端就建立了一條安全通道,只有SSL允許的用戶才能與IIS服務(wù)器進(jìn)行通信。
提示:SSL網(wǎng)站不同于一般的Web站點(diǎn),它使用的是“HTTPS”協(xié)議,而不是普通的“HTTP”協(xié)議。因此它的URL(統(tǒng)一資源定位器)格式為“https://網(wǎng)站域名”。
二:https的本地測試環(huán)境搭建
1:win7/windows server 2008R2中 IIS7/IIS7.5 搭配https本地測試環(huán)境
2:windows server 2003中IIS6.0 搭配https本地測試環(huán)境
三:asp.net 結(jié)合 https的代碼實(shí)現(xiàn)
https是由IIS,瀏覽器來實(shí)現(xiàn)的傳輸層加密,不需要特意的編碼。。。平時(shí)怎么在asp.net里面編寫代碼,就怎么寫。
很可能要問,為什么我的站點(diǎn)使用了https之后,用firebug之類的軟件查看值提交的時(shí)候,還是會(huì)顯示明文呢?例如,博客園的登陸界面提交。
http://passport.cnblogs.com/login.aspx
為什么這里還是能看到明文的用戶名和密碼呢?
原因是因?yàn)椋篽ttps(ssl)的加密是發(fā)生在應(yīng)用層與傳輸層之間,所以,在傳輸層看到的數(shù)據(jù)才是經(jīng)過加密的,而我們捕捉到的http post的,是應(yīng)用層的,是還沒經(jīng)過加密的數(shù)據(jù)。
加密的數(shù)據(jù)只有客戶端和服務(wù)器端才能得到明文 客戶端到服務(wù)端的通信是安全的
支付寶也是https的,但是他的同時(shí)也增加了安全控件來保護(hù)密碼, 以前認(rèn)為這個(gè)只是用來防鍵盤監(jiān)聽的,其實(shí),看下面http post截獲的密碼:這個(gè)安全控件把給request的密碼也先加了密,緊接著https再加次密,果然是和錢打交道的,安全級別高多了:)
四:http網(wǎng)站轉(zhuǎn)換成https網(wǎng)站之后遇到的問題
整站https還是個(gè)別的頁面采用https?網(wǎng)站的連接是使用相對路徑?還是絕對路徑?
如果是整站都是https,那么會(huì)顯得網(wǎng)頁有些慢,如果是個(gè)別頁面采用https,那么如何保證從https轉(zhuǎn)換到http的時(shí)候的url的準(zhǔn)確性呢?
比如我們用http的時(shí)候,網(wǎng)站的頭部底部都是用的相對路徑,假如你的頁面是 http://aa/index.aspx 你跳轉(zhuǎn)到 https://aa/login.aspx 這里怎么來跳轉(zhuǎn)?只能把超鏈接寫死
登陸 但是這樣的話,你跳轉(zhuǎn)過去之后的頁面 ,所有的相對路徑都變成了https開頭了,這樣很影響網(wǎng)站的效率。
雖然使用絕對地址可以解決,但是那樣顯然不好移植。
下面就是使用第三方的組件,來解決上面的這個(gè)問題
步驟
先下載dll文件 http://code.google.com/p/securityswitch/downloads/list 我選擇的是 SecuritySwitch v4.2.0.0 - Binary.zip這個(gè)版本
1: 我們來看看測試項(xiàng)目
admin 文件夾,需要登錄之后,才能訪問。admin里面的 login.aspx 可以訪問。整個(gè)admin文件夾都需要https訪問:
contact.aspx 需要https 訪問:
default.aspx 和 view.aspx 采用 http 訪問:
鏈接我們都采用相對路徑,并沒有寫死成 http://www.xx.com/a.aspx 或者是 https://www.xx.com/a.aspx。
下面我們開始用SecuritySwith來實(shí)現(xiàn)上面的https和http訪問的規(guī)則。
2:在項(xiàng)目上,添加引用 SecuritySwitch.dll ,并且添加智能提示。
這樣,只能提示就有了。
3:然后我們在web.config里面添加設(shè)置 。根據(jù)IIS的不同,還分為 IIS6+ IIS7.X(經(jīng)典模式) 以及 IIS7(集成模式) 的不同的配置,這里我們是按照IIS6+IIS7.X的(經(jīng)典模式)來配置的。
只看看里面的 SSL配置即可:
<securitySwitch baseInsecureUri="http://webjoeyssl"
baseSecureUri="https://webjoeyssl" xmlns="http://SecuritySwitch-v4.xsd"
mode="On">
<!--如果你的http和https僅僅只有一個(gè)s的區(qū)別,那么這里的base的2個(gè)url可以不寫,那為什么還要搞這2個(gè)url呢?因?yàn)楸热?br>
你的 baseInsecureUri (基本不安全網(wǎng)址) 是 http://www.qq.com
而你的 baseSecureUri (基本安全網(wǎng)址) 是 https://safe.qq.com
然后這個(gè)時(shí)候你訪問一個(gè)需要https的頁面,假如是 login.aspx?return=joey
假如你是通過http://www.qq.com/login.aspx?return=joey訪問的,那么這個(gè)
頁面會(huì)跳轉(zhuǎn)到http://safe.qq.com/login.aspx?return=joey
-->
--><!--
-->
4: 由于用到了內(nèi)置票據(jù)認(rèn)證,所以要在 Global.asax添加以下代碼:
protected void Application_AuthenticateRequest(object SENDER, EventArgs e)
{
if (HttpContext.Current.User != null)
{
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
if (HttpContext.Current.User.Identity is FormsIdentity)
{
FormsIdentity id = (FormsIdentity)HttpContext.Current.User.Identity;
FormsAuthenticationTicket tiecket = id.Ticket;
string userData = tiecket.UserData;
string[] roles = userData.Split(',');
HttpContext.Current.User = new System.Security.Principal.GenericPrincipal(id, roles);
}
}
}
}
5: 后臺(tái)登陸界面 admin/login.aspx:
用戶名:
密碼:
記住用戶名:
后臺(tái)登陸界面 cs admin/login.aspx.cs:
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.Security;
namespace web.admin
{
public partial class login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnSubmit_Click(object sender, EventArgs e)
{
string username = txtUser.Text;
string pass = txtPass.Text;
bool ischeck=chkUsername.Checked;
if (username=="admin" && pass=="admin")
{
SaveLogin(username, ischeck);
}
}
private void SaveLogin(string username, bool ischeck)
{
HttpCookie cook;
string strReturnURL;
string roles = "admin";//將用戶的usernameid,保存到cookies,身份是 admin 身份
//要引用 using System.Web.Security;
FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
1, username, DateTime.Now, DateTime.Now.AddMinutes(30), ischeck, roles);
cook = new HttpCookie("mycook");//對應(yīng)webconfig里面的 驗(yàn)證里面的 forms name="mycook"
cook.Value = FormsAuthentication.Encrypt(ticket);
Response.Cookies.Add(cook);
strReturnURL = Request.Params["ReturnUrl"];
if (strReturnURL != null)
{
Response.Redirect(strReturnURL);
}
else
{
Response.Redirect("default.aspx");
}
}
}
}
享有收費(fèi)用戶的權(quán)利,卻不用一分錢的支出;
免費(fèi)100M ASP空間和200M ASP/asp.net空間瘋狂送.
免費(fèi)空間特點(diǎn):
1、系統(tǒng)管理功能強(qiáng)大;
2、自由綁定域名,支持子目錄的綁定;
3、自定義錯(cuò)誤頁面,人性化服務(wù);
4、20用戶共一個(gè)應(yīng)用程序池,保證帶寬和速度;
5、支持ASP/ASP.NET。
支持功能多多,有史以來最完善最優(yōu)質(zhì)的免費(fèi)服務(wù),是你建站的理想選擇,你的空間你主張。
人性化的服務(wù):長期免費(fèi)提供 ASP,.NET網(wǎng)頁空間,論壇在線提問解答,與我們跟貼近.
申請免費(fèi)空間地址: http://www.mc8.cn/