2015-12-16 10 views
6

için kimlik doğrulama .ASPXAUTH Cookie Forms. Hem web. config aynı makine anahtarına sahip ve Forms kimlik doğrulama modu için etkinleştirildiC# Bunları 2 uygulamalar için SSO etkinleştirmeniz gerekir. Ben aynı alan adı ile 2 başvuruları (bir .NET ve .NET diğer Açısal SPA (web hizmetleri) sahip TOA

.NET sitesinde oturum açıyorum, iFrame'deki açısal siteyi sunarım. iframe'i açarken, API çağrısı .ASPXAUTH çerezini içerir. istek üstbilgisi ancak HttpContext.User.Identity.Authenticated false olarak ayarlanmış. Bu nedenle, bir 404 döndürür ve iframe içindeki açısal site için giriş sayfasına yönlendirir

Auth çerezi HttpOnly kadar açısal okunamıyor o ama si Çerez istek başlığında ayarlanmışsa, API (.NET) metodu doğrulanmış olarak değerlendirilmeli ve yapılmamalıdır. Kaybettiğim bir şey var mı?

+0

Her iki uygulama için de aynı kimlik doğrulama bilgisi adını mı kullanıyorsunuz? – AMember

+0

evet, onun .ASPXAUTH – Dave

+1

API isteğindeki FormsAuthentication.Decrypt (HttpContext.Request.Cookies [FormsAuthentication.FormsCookieName] .Value) 'gibi bir şey kontrol ederek başlayacağım, böylece iletilen değerin deşifre edilebildiğinden ve içerilebileceğinden emin olabilirsiniz. API – Lanorkin

cevap

2

Bu soruyu doğru bir şekilde yanıtladığınızdan emin olan bazı bilgiler var ancak bence bu, aynı kaynak politikasıyla ilgili bir şey var. Çerezinizin çapraz site isteği olarak tanınmaması için iFrame'in kaynağını açıkça belirlemelisiniz. Ve bu nedenle ASP.net tarafından uygulanmayacaktır. Kökeni http başlığınız geçerli bir kaynak ve yönlendiren olarak ayarlanmalıdır.

Lütfen bu question'a da bir göz atın. Aynı menşeli politikayı kısaca açıklıyor.