按照本指南中的步驟Using Azure ACS我配置了一個可用的Azure ACS服務&通過Facebook進行身份驗證,重定向回到運行在我的開發服務器上的網站。Azure ACS,WIF 3.5,Asp.Net 3.5自定義會員供應商和IsAuthenticated
驗證成功Azure ACS重定向回我的本地開發網站並且IsAuthenticated標誌爲true,但是我想將IsAuthenticated標誌設置爲true,只有當來自聲明的電子郵件也存在於本地數據庫中時,才能通過檢查/調用一個自定義的MembershipProvider。如果來自聲明的電子郵件不存在,我想將客戶端重定向到註冊頁面。一旦註冊和認證,我想將IsAuthenticated標誌設置爲true。
目前,使用Facebook和AzureACS進行身份驗證後,用戶可以請求安全頁面,例如ViewAccountBalance.aspx,即使該帳戶因爲開箱即用的IsAuthenticated標誌爲true而不存在。有興趣聽聽別人做了什麼,最好的做法是什麼。
在Global.asax的OnInit()中增加了: this.PostAcquireRequestState + =(s,e)=> SecurityHelper.PostAcquireRequestState(); 然後,在SecurityHelper.PostAcquireRequestState中,我有邏輯來檢查頁面是否由標準FormsAuth保護,類似於(http://stackoverflow.com/questions/3390719/determine-if-current-page-requires-authorization) 我也通過Membership.GetUser進行查找,並檢查帳戶是否存在,否則我重定向到註冊頁面。 – Andre 2012-04-19 08:19:40