2013-07-02 22 views
6

OWIN kullanarak, kendi kendine barındırılan SignalR örneğim var. Yetkilendirmeyi uygulamak istiyorum. Kullanıcılarım, Form Kimlik Doğrulaması'nı kullanarak bir ASP.NET MVC uygulamasında oturum açtı.Bir OWIN tarafından barındırılan SignalR uygulamasında ASP.NET Forms Kimlik Doğrulama çerezleri kabul ediliyor mu?

İki uygulama aynı URL'de mevcut olacağından, çerezler ikisi arasında paylaşılacaktır. Kendinden barındırılan SignalR uygulamasında Form Kimlik Doğrulama çerezini nasıl kabul ederim?

Açıklama: Ayrı bir bilgisayarda (ancak aynı ana bilgisayarda yüklü olan ve aynı bilgisayara yüklenen) IIS uygulamasında oturum açmak için kullanılan aynı kimlik bilgilerini kullanarak kendiliğinden barındırılan bir SignalR hub'ına erişen bir tarayıcıdan bahsediyorum.

Yani, soru: .ASPXAUTH çerezini yakalamak ve hub'ı çağırmadan önce geçerli yöneticiyi ayarlamak için kullanmak için SignalR sunucu boru hattına nasıl bağlanırım?

Eğer yardımcı olursa, Nancy'yi karışıma atabilirim. Kullanıcı zaten doğrulanmış ve giriş yaptıysa

+0

Sorununuza bir çözüm buldunuz mu? Aynısını deniyorum (MVC uygulamam ve kendi hosted SignalR servisim farklı portlarda olsa da). –

cevap

0

, kendi SignalR Merkezinin içinde aşağıdakileri kontrol edebilirsiniz:

Context.User.Identity.IsAuthenticated 

bu özellik true olarak ayarlanır sağlayın. Bu kontrolü, bağlantılarını engellemek/kaldırmak için hub'ınızın yapıcısı içine yerleştirebilirsiniz. Yanlış ise, bunları başka bir sayfaya yönlendirebilirsiniz.

+0

Kimlik doğrulama, MVC uygulamasında değil, hizmette gerçekleşir. .ASPXAUTH çerezi her ikisinde de tüketilebilir, ancak bunu SignalR veya OWIN boru hattına nasıl bağlarım? –

+1

Roger, aradığınızı görüyorum ama aslında bunu yapmayı denemedim. Bağlantı sınıfı için "CookieContainer" adlı bir özellik var. Bu, [Microsoft.AspNet.SignalR.Client.Connection] içinde bulunur (http://msdn.microsoft.com/en-us/library/microsoft.aspnet.signalr.client.connection.cookiecontainer (v = vs.111) .aspx) nereden bulabileceğinizi/ayarlayabileceğinizi. Bunun içinde, bu [cevap] 'dan (http://stackoverflow.com/questions/13022415/signalr-net-client-fails-to-connect-upd-how-to-set-auth-cookie) kodu kullanabilirsiniz. deneyin ve ekleyin. – SeanPrice

İlgili konular