Windows Communication Foundation Authentication Service'u aradığınız gibi görünüyor.
DÜZENLEME: Yukarıdaki öneriyi geri çekmek istiyorum daha dikkatli soruyu tekrar okuma (ve Ariel yorumun sonra) sonra
. WCF Kimlik Doğrulama Servisi bu senaryoya çok fazla eklenmeyecek.
Bunu WCF ve ASP.NET arasında yapmadım, ancak ASP.NET uygulamalarını form kimliği doğrulanmış kullanıcıları paylaşmak üzere yapılandırdım, belki de bir şekilde yardımcı olabilirim.
Her iki uygulamanın da form kimlik doğrulama tanımlama bilgisini aynı şekilde şifrelemek/şifresini çözmek için her iki uygulama için de configure the <machineKey>
element'u (makine veya uygulama düzeyinde yapmak istediğinize bağlı olarak web.config veya machine.config dosyasında)). validation
, validationKey
, decryption
ve decryptionKey
özniteliklerine bakmalısınız.
Her iki web.config dosyasındaki <forms>
öğelerinizin benzer şekilde yapılandırıldığından emin olun. Spesifik olarak name
, path
ve domain
öznitelikleri.
Bu sadece bir web tarayıcısından için/iletilen tanımlama için de geçerlidir (ancak bu durumda yararlı olabilir) büyük olasılıkla: kurabiye web siteleri arasında geçirilecek izin vermek için www.foo.com ve bar.foo .com çerezler diğer bir siteden ayarlanır ve başarılı bir şekilde geçirilmesini sağlamak için aşağıdaki gibi forms
elemanı yapılandırmak istiyorum:
<forms ... domain=".foo.com" ... />
WCF servisine tanımlama bilgisi geçirmeden karmaşık bit olması muhtemeldir. Çok böylece I've adapted code from kennyw.com, WCF ile deneyimli değilim:
HttpRequestMessageProperty httpRequestProperty = new HttpRequestMessageProperty();
httpRequestProperty.Headers.Add(HttpRequestHeader.Cookie, "<Forms Authentication Cookie>");
using (OperationContextScope scope = new OperationContextScope(serviceClient.InnerChannel))
{
OperationContext.Current.OutgoingMessageProperties[HttpRequestMessageProperty.Name] = httpRequestProperty;
serviceClient.MethodName();
}
Eğer
ayarlayarak ASP.NET işleme boru hattıyla WCF isteği geçebilir IIS (ve Kendi kendine barındırma) içinde WCF koyduysanız
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true" ... />
</system.serviceModel>
Eğer OperationContext.Current.IncomingMessageProperties
gelen mesajın özelliklerini kullanarak istek başlıklarını incelemek ve form kimlik doğrulama tanımlama bilgisi değeri elde ve FormsAuthentication.Decrypt(string)
kullanarak şifresini olabilir barındırma kendini iseniz.
Bunlardan herhangi birinin işe yarayıp yaramadığına dair bir fikrim yok, ancak bunu duymak ister!
Merhaba Ariel, bununla nasıl başa çıktın? Benzer sorunları olan birini tanıyorum. –