IIS中可以依照自己需求設定Http Header,可用來定義meta或是一些設定。
如下圖所示:每個框起來的地方,其實都可以設定自己的http header。
繼承設定:
設定http回應標頭時,若由最上層開始設定,子層便會繼承此設定。
以最上層來說,項目類型會寫"本機"。
而以EAP\DEMO為例,項目類型就會顯示"已繼承"。
移除繼承:
在這邊的子層會繼承父層的設定,但是如果不想繼承設定的話,在右邊有移除的功能,
點擊移除就可以。
IIS中可以依照自己需求設定Http Header,可用來定義meta或是一些設定。
如下圖所示:每個框起來的地方,其實都可以設定自己的http header。
繼承設定:
設定http回應標頭時,若由最上層開始設定,子層便會繼承此設定。
以最上層來說,項目類型會寫"本機"。
而以EAP\DEMO為例,項目類型就會顯示"已繼承"。
移除繼承:
在這邊的子層會繼承父層的設定,但是如果不想繼承設定的話,在右邊有移除的功能,
點擊移除就可以。
<browsers> | |
<browser id="IE11" parentID="Mozilla"> | |
<identification> | |
<userAgent match="Trident\/7.0; rv:(?'version'(?'major'\d+)(\.(?'minor'\d+)?)(?'letters'\w*))(?'extra'[^)]*)" /> | |
<userAgent nonMatch="IEMobile" /> | |
</identification> | |
<capture> | |
<userAgent match="Trident/(?'layoutVersion'\d+)" /> | |
</capture> | |
<capabilities> | |
<capability name="browser" value="IE" /> | |
<capability name="layoutEngine" value="Trident" /> | |
<capability name="layoutEngineVersion" value="${layoutVersion}" /> | |
<capability name="extra" value="${extra}" /> | |
<capability name="isColor" value="true" /> | |
<capability name="letters" value="${letters}" /> | |
<capability name="majorversion" value="${major}" /> | |
<capability name="minorversion" value="${minor}" /> | |
<capability name="screenBitDepth" value="8" /> | |
<capability name="type" value="IE${major}" /> | |
<capability name="version" value="${version}" /> | |
</capabilities> | |
</browser> | |
<!-- Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11,0) like Gecko --> | |
<browser id="IE110" parentID="IE11"> | |
<identification> | |
<capability name="majorversion" match="11" /> | |
</identification> | |
<capabilities> | |
<capability name="ecmascriptversion" value="3.0" /> | |
<capability name="jscriptversion" value="5.6" /> | |
<capability name="javascript" value="true" /> | |
<capability name="javascriptversion" value="1.5" /> | |
<capability name="msdomversion" value="${majorversion}.${minorversion}" /> | |
<capability name="w3cdomversion" value="1.0" /> | |
<capability name="ExchangeOmaSupported" value="true" /> | |
<capability name="activexcontrols" value="true" /> | |
<capability name="backgroundsounds" value="true" /> | |
<capability name="cookies" value="true" /> | |
<capability name="frames" value="true" /> | |
<capability name="javaapplets" value="true" /> | |
<capability name="supportsCallback" value="true" /> | |
<capability name="supportsFileUpload" value="true" /> | |
<capability name="supportsMultilineTextBoxDisplay" value="true" /> | |
<capability name="supportsMaintainScrollPositionOnPostback" value="true" /> | |
<capability name="supportsVCard" value="true" /> | |
<capability name="supportsXmlHttp" value="true" /> | |
<capability name="tables" value="true" /> | |
<capability name="supportsAccessKeyAttribute" value="true" /> | |
<capability name="tagwriter" value="System.Web.UI.HtmlTextWriter" /> | |
<capability name="vbscript" value="true" /> | |
</capabilities> | |
</browser> | |
<browser refID="Default"> | |
<controlAdapters> | |
<adapter controlType="SystemLead.Framework.Web.Controls.SLTreeView" adapterType="SystemLead.Framework.Web.Controls.SLTreeViewAdapter,SystemLead.Framework.Web" /> | |
<adapter controlType="SystemLead.Framework.Web.Controls.SLTabMenu" adapterType="SystemLead.Framework.Web.Controls.SLTabMenuAdapter,SystemLead.Framework.Web" /> | |
<!-- | |
<adapter controlType="SystemLead.Framework.Web.Controls.SLCollapseMenu" adapterType="SystemLead.Framework.Web.Controls.SLCollapseMenuAdapter,SystemLead.Framework.Web" /> | |
--> | |
<adapter controlType="SystemLead.Framework.Web.Controls.SLCollapseMenu" adapterType="SystemLead.Framework.Web.Controls.SLNewCollapseMenuAdapter,SystemLead.Framework.Web" /> | |
<adapter controlType="AjaxControlToolkit.AsyncFileUpload" adapterType="SystemLead.Framework.Web.Controls.SLAsyncFileUploadAdapter,SystemLead.Framework.Web" /> | |
<adapter controlType="SystemLead.Framework.Web.Controls.SLLabel" adapterType="SystemLead.Framework.Web.Controls.SLLabelAdapter,SystemLead.Framework.Web" /> | |
<adapter controlType="AjaxControlToolkit.CalendarExtender" adapterType="SystemLead.Framework.Web.Controls.SLCalendarExtenderAdapter,SystemLead.Framework.Web" /> | |
<adapter controlType="AjaxControlToolkit.AutoCompleteExtender" adapterType="SystemLead.Framework.Web.Controls.SLAutoCompleteExtenderAdapter,SystemLead.Framework.Web" /> | |
</controlAdapters> | |
</browser> | |
</browsers> |
在檢測網站時,發現某個需登入後的頁面,在取得網址後就可以進入修改,這表示後台門戶大開,大大影響資安與資料的外洩。
比如說Maintain這個資料夾,是需要透過登入認證後才可以存取。
所以在web.config必須加上
這個config檔可以放置在maintain目錄下,這樣權限只會限制在此目錄中。
如果是放在最外層的web.confg中,就會讓整個網站都受限制。
若放在最外層也可以改寫成
配合Forms驗證
當你網址是需要登入才可以使用,這裡就會幫你把程式導到登入頁面。
參考:
2.WebP and VP9
WebP是Google2010就提出的影像壓縮技術,在近期表現程度逐漸可以取代JPEG。
在會議中比較了現在WebP與JPEG圖檔的比較,相類似的影像品質,WebP容量比JPEG少30%。
再來就是視訊壓縮VP9的部分,硬是比H.264少60%,看來Google對視訊這塊很上心。
3.Google 推出 Chrome for Mobile 新 Beta 版,重點在於能夠為用戶壓縮數據用量,他們表示可以為用戶縮減數據用量 46%!
4.Google Play Music All Access
Google音樂平台,包月,目前僅美國開放。
5.Google Play Game Services: 主要就是和 Apple 的 Game Center 打對台。
6.Google+更新,正面迎擊FaceBook。
7.Google Map更新
8.Android Studio:Android 開發IDE
9.Google Wallet:電子錢包
10.Android 版 Google Now 的更新:
1.善用瀏覽器的開發者工具
2.jsPerf:
3.Object與Array該選哪一個?
4.使用Object技巧:
5.使用Array技巧:
6.優化javascript記憶體使用效率:
fuction HelloWorld()
{
var str = 'test';
alert(str);
}
7.JavaScript的Scope觀念:
8.使用window.setTimeout的注意事項
9.DOM快取
10.關於型別轉換
1.Hangouts
最近在Gmail中,發現原先發起視訊通話的圖示,換成了發起Hangouts。
原來這是google在這次新推出的傳訊軟體,整合了 Google Talk、Google+ messager 等等服務。
點擊之後,跳出了安裝視窗。
安裝完成後,點選加入。
便開啟了視訊通話的介面,就可以開始進行視訊通話。
如果有使用Android 系統的手機,在進行 Google Talk的更新後,結果發現App換了另外一個名稱也換了圖示。
進入後會驗證電話。
若有使用多個google帳號,會讓你挑選與那個帳戶建立關聯。
進入後通訊錄的畫面如下,可以找個朋友進行對話。
視訊通話:手機與網頁互相測試。
To Be Continue…
使用傳統ADO.NET的方式建立。以下為取得資料的方式。
namespace MvcApplication1.Models { public class CustomerDataContext { List<customer> GetAllCustomerData(){ List<customer> customers = new List<customer>(); SqlConnection conn = new SqlConnection("initial catalog=northwind; integrated security=SSPI"); SqlCommand cmd = new SqlCommand("SELECT * FROM Customers", conn); conn.Open(); SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); while (reader.Read()) { Customer customer = new Customer(); for (int i = 0; i < reader.FieldCount; i++) { PropertyInfo property = customer.GetType().GetProperty(reader.GetName(i)); property.SetValue(customer, (reader.IsDBNull(i)) ? "[NULL]" : reader.GetValue(i), null); } customers.Add(customer); } reader.Close(); return customers;} } }
Controller中的寫法:
public ActionResult Customers(){ List<models.customer> customers = Models.CustomerDataContext.LoadCustomers(); return View(customers); }
參考資料:
透過Entity Framework取得資料庫資料。
namespace Project.Models
{
public class CustomerDAL
{
///
/// 取得本機驗證碼
///
///
public List<ustomer> GetAllCustomerData()
{
using (myDBEntities obj = new myDBEntities())
{
try
{
//使用linq語法來取得(篩選)資料
var query = (from c in obj.Customer
select c);
return query.ToList<Customer>();
}
catch (Exception ex)
{
return "";
}
}
}
}
}
Controller中的寫法:
public ActionResult Customers()
{
List<models.customer> customers = new CustomerDAL().GetAllCustomerData();
return View(customers);
}
一般常見的方式使用Entity Framework來建立Model。
新增後會進入設定精靈,開始選項有兩種:
1.從資料庫來建立Entity。
2.建立空的Model,之後再讓使用者自行建立相對應的Entity。
在此以1為例。
設定連線字串,
選擇No:不含敏感資料
選擇Yes:含敏感資料
設定要匯入Model的相關預存、Table、View等,點擊完成後,便會產生對應的資料。
點擊EDMX檔案,即可檢視產生的Entity。
設定方法類似TypedDataSet,一樣可以新增欄位等。
開啟VS2012,新增專案,選擇ASP.NET MVC 4 Web應用程式。
建立方案後,MVC Web應用程式架構如下:
1.Controllers
2.Models
3.Views
存在相對應目錄來處理每層要做的事情。
雖然預設MVC Web專案已經把架構目錄都規劃好,但是為了專案彈性,
可以試著把Models獨立成一個專案。
再來架構完成後就可以進行Models的設定與建置。