按照本指南中的步骤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