程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> ASP.NET Profile屬性

ASP.NET Profile屬性

編輯:關於ASP.NET

ASP.NET Profile屬性

作用:

存儲和使用唯一與用戶對應的信息

展現個人化版本的Web應用程序

用戶的唯一身份標識在再次訪問時識別用戶

ASP.NET Profile如何工作

你的Web應用程序運行時,ASP.NET創建一個從ProfileBase類動態繼承下來的動態生成出來的ProfileCommon類。動態ProfileCommon類包含了你在Web應用程序配置文件中指定的Profile屬性所擁有的字段。一個動態ProfileCommon類的實例被設置成了當前HttpContext的Profile屬性,並可以在應用程序的各個頁面中使用。

ASP.NET屬性的用戶身份

ASP.NET用戶Profile特性被設計用來為唯一當前用戶提供信息。Profile可以與認證用戶和匿名用戶同時使用。

認證用戶

默認地,一個用戶Profile與當前HTTP上下文(可通過System.Web.HttpContext.Current訪問)中的User屬性中存儲的用戶身份關聯。用戶身份由如下因素決定:

· ASP.NET表單審核系統,成功審核後設置用戶身份。

· Windows或者Passport審核,成功審核後設置用戶身份。

· 自定義審核,你管理用的信用憑證並手動設置用戶身份。

ASP.NET表單審核包括創建一個Login表單並提示請求用戶憑證。你可以通過使用Login控件創建Login表單和實現無編碼的表單審核。

匿名用戶

當你未經過登陸而在Web應用程序中浏覽時,持有和使用的是匿名用戶身份。這種用戶身份的用戶名是一個GUID字符串。可以通過用戶遷移方法的重載將匿名用戶轉變為審核用戶,實際上是為匿名用戶生成Profile和相應的Cookie,不過維持的狀態保存在本地電腦,如果Cookie過期或者使用其它電腦就可能導致信息丟失。

開發相關問題:

ASP.NET Profile屬性使用Form審核機制,通過Cookie維持狀態,可以保證不受會話超時影響,當然也可以設定為Sliding Expire。ASP.NET Profile屬性所持有身份Cookie的超時時間需要在Web.config文件中的forms元素上設置timeout屬性,有值的區間限制,不過可以通過設置一個較大的值來維持一個“永久”的Profile。其實Cookie超時時間過長是有安全隱患的,不過為了滿足一些需求只好使用這種方法,但記得要加密Cookie並盡量使用SSL連接保持Cookie的安全性。

ASP.NET Profile屬性的相關字段和Provider需要在Web.config文件中進行設置。而關鍵在於Provider,默認使用的是輕量級數據庫(本地數據庫文件)來支持Profile屬性,但是如果是企業級開發,注意需要使用aspnet_regsql命令去生成數據庫,當然這個數據庫可以是已經存在的數據庫,方便開發者開發已存在系統的身份驗證和審核功能。

ASP.NET Profile的另一個功能是因為數據庫存儲了Web應用服務器的各個Web應用程序的根和與其對應的身份,所以也被用來實現SSO。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved