Web API'sini kullanarak bir ASP.NET MVC 4 Project'im var. Denetleyicide [Authorize] özniteliğini kullanarak yetkilendirmeyi zorunlu kılmak için sınıfı ayarlamıştım. Kimlik Doğrulama için ASP.NET Üyelik Sağlayıcısı'nı kullanıyorum ve Web formumda "Formlar" Kimlik Doğrulaması kullanacak şekilde ayarlamam var. İşte burada takılıyorum:ASP.NET MVC 4 Üyelik Sağlayıcısı ile Web API Kimlik Doğrulaması
Her şey, API'yi test ederek yaptığım noktaya kadar çalışıyor ve denetleyiciyi [Authorize] özniteliğiyle güvenceye almak istiyorum. Üyelik Sağlayıcısı. Bu yüzden Fiddler kadar yangın ve yetkilendirmesi ekleyerek aynı çağrıyı yapın: şöyle my üyelik sağlayıcısından şifre:
ben 401 izinsiz ve "Auth" altına almak yanıtı adı ile beraber Temel özellik "WWW-Authenticate Header mevcut değil" alıyorum. Sonra, API'nın SHA1 şifreli bir anahtar aradığını anlıyorum. Bu yüzden bir aramadan bir SHA1 jeneratörü çalıştırıp İsmimin için bir karma olsun: şifre ve şöyle benim iste Başlığını güncelleme:
Bu da işe yaramazsa ve ben aynı sonuçlar elde ederler. Ayrıca, kullanıcı adı/şifremi çözmek için sunucuyla birlikte kullanacağım açıkça bir çeşit "paylaşımlı gizli anahtar" a ihtiyacım var.
Yani benim sorular: Ben sunucudan bu anahtarı alırım Nasıl
- (veya bu durumda Sanal IIS VS 2012 akıp).
- Bunu, bir ASP.NET Üyelik Sağlayıcısından kullanıcı adları/parolalar kullanarak Fiddler'da Kimlik Doğrulanmış aramalar yapmak için nasıl kullanırım?
- Aynı çağrıları yapmak için istemci uygulamasında bunu nasıl kullanırım (C# WPF Uygulaması).
- HTTP çağrılarımda SSL ile birleştirildiğinde bu en iyi pratik mi? Eğer değilse ne var?
Şimdiden teşekkürler!
Teşekkür Darin, bu ihtiyacım olan şey tam da! – CodeAbundance
'User.Identity.Name 'denetleyici yönteminde benim için boş' User.Identity.IsAuthenticated'' false '. Hata ayıklayıcısında 'Thread.CurrentPrincipal', ileti işleyicisindeki doğru kullanıcı adı ve rolleri olan ana makineye ayarlandığını görebiliyorum. Ayrıca '[Yetkilendirme (Roller = ...)] 'özniteliğine saygı duyulur: Yanlış rolleri olan bir kullanıcıyı kullanırsam İzinsiz yanıt alır ve denetleyici yöntemine ulaşamam. Ancak 'User.Identity', mesaj işleyicide belirttiğim değere sahip değil. Neyin yanlış olabileceğine dair bir fikrin var mı? – Slauma
@Slauma, Bunu yeniden oluşturamıyorum. Belki de, problemin nasıl yeniden üretileceğini adım adım açıklayan yeni bir konu başlatabilirsiniz (tabii ki boş bir projeden başlayarak). –