2012-09-26 11 views
6

Özel jeton tabanlı kimlik doğrulaması ile ASP.NET Web API'sini kullanarak bir RESTful hizmet yapıyorum. Müşteri ilk aramaya kimlik bilgilerini gönderecektir. Servis, kullanıcı detaylarını kullanarak şifreli bir belirteç oluşturacak ve bu noktadan itibaren kimlik doğrulama için kullanılacaktır. Artık hizmetin bu belirteci istemciye geri göndermesi gerekiyor. İlk başta belirteci, bir HTTP özel yanıt başlığında tuttum, böylece istemci, hizmet tarafından döndürülen verileri bağımsız olarak okuyabilir. Bu, istemci ve hizmet aynı etki alanında olduğunda iyi çalıştı, ancak çapraz etki alanı senaryosunda başarısız oldu. CORS hizmetimi etkinleştirdi ve "Access-Control-Expose-Headers", "Access-Control-Allow-Origin: *" vb. Gibi her türlü başlığı ekledi. Ancak, etki alanı istemcisi özel yanıt üstbilgisini okuyamadı "SecureToken:" olanı yarattım. Web tarayıcılarının, çapraz etki alanı senaryolarında özel yanıt başlıklarını okuma konusunda bazı sorunlarının olduğu birkaç yayında gördüm. Yani şimdi güvenli belirteci, hizmetten gönderilen tüm ViewModel/veri nesnelerini ortak bir temel sınıf aracılığıyla göndermeyi düşünüyorum. özel güvenli belirteçleri göndermek için en iyi yerdir NeRESTful hizmetinden güvenli belirteci nasıl gönderilir?

  1. : Bu bağlamda itibaren

    sorum çift var. Yanıt üstbilgisinde mi yoksa ViewModel/veri sınıflarının temel sınıfında ortak özellik mi?

  2. , çapraz etki alanı istemcileri bile okuyabilmeleri için belirteci ve özel bilgileri göndermek için kullanabileceğim standart bir HTTP yanıt üstbilgisi var mı?

Herhangi bir yardım büyük takdir edilecektir! Teşekkürler!

+0

Merhaba tpeczek - Bu soruya bakmak için zaman ayırdığınız için teşekkür ederiz. Bu makaleyi daha önce de görmüştüm: http: //codebetter.com/johnvpetersen/2012/04/02/making-your-asp-net-web-apis-secure/. Özel anahtar şifrelemeyi kullanan zaten belirteç tabanlı kimlik doğrulamasını kullandım. Soru, kullanıcı çıkış yapmadan güncellenmiş jetonun (oturum süresi güncellendiğinde, yeni jeton oluşturulduğunda) nasıl gönderileceğidir. Belirli bir yanıt üstbilgisi en iyi seçenek oldu, ancak maalesef çapraz etki alanı istemcileri standart olmayan yanıt üstbilgileri okuyamıyor – Whizkid747

cevap

2

Authorization başlığı bunun için tasarlanmıştır. Nasıl kullanılacağı ile ilgili ayrıntılar için bu bağlantıda section 14.8'u kontrol edin.

+1

isnt Yetkilendirme bir istek üstbilgisi? Http "Response" başlığını soruyordum. – Whizkid747

+1

Yetkilendirme, hem istek hem de yanıt için geçerli bir başlıktır. Yetkilendirmeyi döndürmek için Yetkilendirme üstbilgisini özel bir şema ile kesinlikle kullanabilmeniz/kullanmanız gerekir. –