Microsoft ASP.NET MVC 4 ApiController
kullanarak basit bir RESTful Web hizmeti (şimdilik GET-only) yaptım.Microsoft MVC 4, APIController ve uygun RESTful giriş Web hizmeti
Şimdi hizmet için bir yetkilendirme sistemi uygulama yolunu arıyorum. WS'yi kullanarak tüm uygulamalar için benzersiz bir giriş sayfasına sahip olmak istemediğim için, yerleşik FormsAuthentication
'u kullanmak istemediğimi biliyorum. dahası, RESTful paradigmasını kırar, bir yönlendirmeyi zorlar ve istemciyi uygun 401
durum koduyla bildirmez.
Yani şu satırları silme engelli FormsAuthentication
var benim web.config
:
<authentication mode="Forms">
<forms loginUrl="~/Account/Login" timeout="2880" />
</authentication>
ve ekleme aşağıdaki:
<modules runAllManagedModulesForAllRequests="true">
<remove name="FormsAuthentication" />
</modules>
Zaten Kullanıcı giriş temelde çekler yönetmek için ApiController
var veritabanına karşı kimlik bilgileri ve kimlik bilgileri geçerli değilse, kullanıcı veya 401
döndürür.
Membership
ve Authorization
API'yi uygulamam gerektiğini okudum, ancak sıfırdan yapmama yardımcı olan hiçbir şey bulamadım. Herhangi bir fikrin var mı? Veritabanındaki çerezleri ve kimlik kodlarını yönetmem gerekiyor mu yoksa benim için FormsAuthentication
'a benzer bir sınıf var mı?
İlk örneğe ihtiyacım var gibi görünüyor, 'BasicAuthentication'. Ama henüz bir veri tabanında saklamak için bir yol olup olmadığını (istemcide kullanıcı adı ve parola istemciye authcode olarak göndermeyeceğim) anlayamadım. – frapontillo
"Kimlik kodunu saklamanın bir yolu" ile ne demek istediğini anladığımdan emin değilim. Kimlik doğrulamanıza ilişkin açıklamanız nedir? Temel kimlik doğrulama ile, kullanıcı adı/şifreyi kodlamak ve diğer uçta şifresini çözmek istiyorsunuz.Ayrıca tüm mesajı tel üzerinde şifrelemek için HTTPS/SSL/TSL'yi temel kimlik doğrulama ile kullanmak istersiniz. Şifreleri bir DB'ye kaydederken saklanan parola için her zaman tek yönlü bir şifreleme kullanırım. Daha sonra, DB'de neyin bir karşılaştırmasını yapmadan önce kullanıcı şifresi üzerinde aynı şifrelemeyi kullanırsınız. –
Her giriş için geçici bir kimlik kodu oluşturmak ve bir veritabanında saklamak istiyorum. Benim düşündüğüm, FormsAuthentication'ın yaptığı şeyle aynıdır: Kayıtlı kullanıcıya sıkı sıkıya bağlı bir oturum yetkilendirme kodu oluşturur. – frapontillo