發布:2023-11-05 02:40:00編輯:視頻君來源:視頻教程網
ASP空間是Active
Server
Page的縮寫,意為“動態服務器主頁”。ASP是微軟公司開發的代替CGI腳本程序的一種應用,它可以與數據庫和其它程序進行交互,是一種簡單、方便的編程工具。ASP的網頁文件的格式是.asp,現在常用于各種動態網站中。
ASP是一種服務器端腳本編寫環境,可以用來創建和運行動態網頁或Web應用程序。ASP網頁可以包含HTML標記、普通文本、腳本命令以及COM組件等。利用ASP可以向網頁中添加交互式內容(如在線表單),也可以創建使用HTML網頁作為用戶界面的web應用程序。1.說到PHP空間,首先要講PHP。PHP,一個嵌套的縮寫名稱,是英文超級文本預處理語言(PHP:Hypertext
Preprocessor)的縮寫。PHP
是一種HTML內嵌式的語言,PHP與微軟的ASP頗有幾分相似,都是一種在服務器端執行的嵌入HTML文檔的腳本語言,語言的風格有類似于C語言,現在被很多的網站編程人員廣泛的運用。PHP
獨特的語法混合了
C、Java、Perl
以及
PHP
自創新的語法。它可以比
CGI
或者
Perl
更快速的執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML文檔中去執行,執行效率比完全生成HTML標記的CGI要高許多;與同樣是嵌入HTML文檔的腳本語言JavaScript相比,PHP在服務器端執行,充分利用了服務器的性能;PHP執行引擎還會將用戶經常訪問的PHP程序駐留在內存中,其他用戶在一次訪問這個程序時就不需要重新編譯程序了,只要直接執行內存中的代碼就可以了,這也是PHP高效率的體現之一。PHP具有非常強大的功能,所有的CGI或者JavaScript的功能PHP都能實現,而且支持幾乎所有流行的數據庫以及操作系統! 2.
能夠運行PHP程序的主機空間,我們把它稱為PHP空間(虛擬主機)
https及https的本地測試環境搭建。asp.net結合https的代碼實現http網站轉換成https網站,以及之后遇到的問題等。
一:什么是https
SSL(Security Socket Layer)全稱是加密套接字協議層,它位于HTTP協議層和TCP協議層之間,用于建立用戶與服務器之間的加密通信,確保所傳遞信息的安全性,同時SSL安全機制是依靠數字證書來實現的。
SSL基于公用密鑰和私人密鑰,用戶使用公用密鑰來加密數據,但解密數據必須使用相應的私人密鑰。使用SSL安全機制的通信過程如下:用戶與IIS
服務器建立連接后,服務器會把數字證書與公用密鑰發送給用戶,用戶端生成會話密鑰,并用公共密鑰對會話密鑰進行加密,然后傳遞給服務器,服務器端用私人密
鑰進行解密,這樣,用戶端和服務器端就建立了一條安全通道,只有SSL允許的用戶才能與IIS服務器進行通信。
提示:SSL網站不同于一般的Web站點,它使用的是“HTTPS”協議,而不是普通的“HTTP”協議。因此它的URL(統一資源定位器)格式為“https://網站域名”。
二:https的本地測試環境搭建
1:win7/windows server 2008R2中 IIS7/IIS7.5 搭配https本地測試環境
2:windows server 2003中IIS6.0 搭配https本地測試環境
三:asp.net 結合 https的代碼實現
https是由IIS,瀏覽器來實現的傳輸層加密,不需要特意的編碼。。。平時怎么在asp.net里面編寫代碼,就怎么寫。
很可能要問,為什么我的站點使用了https之后,用firebug之類的軟件查看值提交的時候,還是會顯示明文呢?例如,博客園的登陸界面提交。
http://passport.cnblogs.com/login.aspx
為什么這里還是能看到明文的用戶名和密碼呢?
原因是因為:https(ssl)的加密是發生在應用層與傳輸層之間,所以,在傳輸層看到的數據才是經過加密的,而我們捕捉到的http post的,是應用層的,是還沒經過加密的數據。
加密的數據只有客戶端和服務器端才能得到明文 客戶端到服務端的通信是安全的
支付寶也是https的,但是他的同時也增加了安全控件來保護密碼, 以前認為這個只是用來防鍵盤監聽的,其實,看下面http post截獲的密碼:這個安全控件把給request的密碼也先加了密,緊接著https再加次密,果然是和錢打交道的,安全級別高多了:)
四:http網站轉換成https網站之后遇到的問題
整站https還是個別的頁面采用https?網站的連接是使用相對路徑?還是絕對路徑?
如果是整站都是https,那么會顯得網頁有些慢,如果是個別頁面采用https,那么如何保證從https轉換到http的時候的url的準確性呢?
比如我們用http的時候,網站的頭部底部都是用的相對路徑,假如你的頁面是 http://aa/index.aspx 你跳轉到 https://aa/login.aspx 這里怎么來跳轉?只能把超鏈接寫死
登陸 但是這樣的話,你跳轉過去之后的頁面 ,所有的相對路徑都變成了https開頭了,這樣很影響網站的效率。
雖然使用絕對地址可以解決,但是那樣顯然不好移植。
下面就是使用第三方的組件,來解決上面的這個問題
步驟
先下載dll文件 http://code.google.com/p/securityswitch/downloads/list 我選擇的是 SecuritySwitch v4.2.0.0 - Binary.zip這個版本
1: 我們來看看測試項目
admin 文件夾,需要登錄之后,才能訪問。admin里面的 login.aspx 可以訪問。整個admin文件夾都需要https訪問:
contact.aspx 需要https 訪問:
default.aspx 和 view.aspx 采用 http 訪問:
鏈接我們都采用相對路徑,并沒有寫死成 http://www.xx.com/a.aspx 或者是 https://www.xx.com/a.aspx。
下面我們開始用SecuritySwith來實現上面的https和http訪問的規則。
2:在項目上,添加引用 SecuritySwitch.dll ,并且添加智能提示。
這樣,只能提示就有了。
3:然后我們在web.config里面添加設置 。根據IIS的不同,還分為 IIS6+ IIS7.X(經典模式) 以及 IIS7(集成模式) 的不同的配置,這里我們是按照IIS6+IIS7.X的(經典模式)來配置的。
只看看里面的 SSL配置即可:
<securitySwitch baseInsecureUri="http://webjoeyssl"
baseSecureUri="https://webjoeyssl" xmlns="http://SecuritySwitch-v4.xsd"
mode="On">
<!--如果你的http和https僅僅只有一個s的區別,那么這里的base的2個url可以不寫,那為什么還要搞這2個url呢?因為比如
你的 baseInsecureUri (基本不安全網址) 是 http://www.qq.com
而你的 baseSecureUri (基本安全網址) 是 https://safe.qq.com
然后這個時候你訪問一個需要https的頁面,假如是 login.aspx?return=joey
假如你是通過http://www.qq.com/login.aspx?return=joey訪問的,那么這個
頁面會跳轉到http://safe.qq.com/login.aspx?return=joey
-->
--><!--
-->
4: 由于用到了內置票據認證,所以要在 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: 后臺登陸界面 admin/login.aspx:
用戶名:
密碼:
記住用戶名:
后臺登陸界面 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");//對應webconfig里面的 驗證里面的 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");
}
}
}
}
享有收費用戶的權利,卻不用一分錢的支出;
免費100M ASP空間和200M ASP/asp.net空間瘋狂送.
免費空間特點:
1、系統管理功能強大;
2、自由綁定域名,支持子目錄的綁定;
3、自定義錯誤頁面,人性化服務;
4、20用戶共一個應用程序池,保證帶寬和速度;
5、支持ASP/ASP.NET。
支持功能多多,有史以來最完善最優質的免費服務,是你建站的理想選擇,你的空間你主張。
人性化的服務:長期免費提供 ASP,.NET網頁空間,論壇在線提問解答,與我們跟貼近.
申請免費空間地址: http://www.mc8.cn/