我有以下客戶特別需要的嚴格方案:使用Asp.NET MVC4的單個網站,可通過具有單點登錄機制的各個域訪問。ASP MVC單一應用程序多域身份驗證
我設法通過在webconfig指定的二級域名
<authentication mode="Forms">
<forms name="SingleSignOn" loginUrl="/Login/LoginRedirect" timeout="10" slidingExpiration="false" domain="domain.ml" cookieless="UseCookies" enableCrossAppRedirects="true">
<credentials passwordFormat="SHA1" />
</forms>
</authentication>
還呼籲在登錄邏輯FormsAuthentication.SetAuthCookie
的時候,我指定的二級域名,以及爲與子域名形式的認證工作:
System.Web.HttpCookie MyCookie = System.Web.Security.FormsAuthentication.GetAuthCookie(lName, false);
MyCookie.Domain = lSecondLevelDomain;
FormsAuthentication.SetAuthCookie(lName, false);
在不同的領域,這是行不通的,因爲實際的域不會在web.config中並沒有與餅乾指定的域匹配。
目的是:
用戶訪問domain1.com 用戶重定向到logindomain.com和認證的cookie創建 用戶重定向回domain1.com
用戶總是重定向到一個「登錄域「,cookie是使用該域創建的,並且始終使用跨域的相同cookie進行身份驗證。
是否可以重寫Authorize屬性的邏輯,以便允許使用登錄域的cookie而不是用戶最初使用的域進行授權?