2016-04-04 12 views
1

Üyelik/kimlik doğrulaması için Asp.Net Identity kullanan çok kullanıcılı bir web/mobil uygulamasına sahibim. Kullanıcılar uygulamayı bir android uygulamasıyla veya doğrudan web arayüzü üzerinden kullanabilirler. Uygulamayı kullanmak için kayıt olmalı.Birden çok kiracı uygulaması için kimlik e-posta veya kullanıcı adına izin veriyor

Sorun, tek bir e-posta/kullanıcı adı/telefon numarası olan bir kullanıcının aynı anda birden fazla kiracıya kaydedememesidir. Örneğin bir kiracının bir muhasebeye ithaf edildiğini ve bir diğerinin mesajlaşmaya adanmış olduğunu hayal edin. Bir kullanıcı, her ikisinde de tek bir e-posta/kullanıcı adı/telefon ile kayıt olmak ister. Ancak Identity, e-posta/kullanıcı adı/telefonun doğal olarak yinelenmesine izin vermez.

ürününü IdentityUser numaralı varlıkta tanıttım. Yani kullanıcının hangi uygulamaya ait olduğu bellidir. Bir geçici çözüm, AppId kullanmaktır. Örneğin, benzersiz olması için AppId'un username'un önüne eklenmesi.

Bu senaryo için iyi bir tasarım var mı?

+0

bir örneğini alır UserManager.UserValidator takın sadece tek bir hesap ve ekleyin. – trailmax

+0

@trailmax Bu iyi bir nokta ama müşteri, bu uygulamaların aynı veritabanında barındırıldığını kimsenin bilmediği bir seçeneğe sahip olmak istiyor. –

cevap

0

Kullanıcı hesapları için kendi doğrulama kurallarınızı uygulamak istiyorsanız, kendi IIdentityValidator<TUser> numaralı telefonu uygulamanız gerekecektir. Muhtemelen en kolay yolu çerçevenin UserValidator<TUser> sınıfından (see source here) miras almak ve sınıfın ilgili kısımlarını geçersiz kılmaktır. Bu, kiracılarınızda kullanıcı adı/e-posta benzersizliği eklemek, ancak aynı e-postaların farklı kiracılarda kullanılmasına izin vermek istiyorsanız kullanışlıdır. Eğer uygulama bir kez

Ve, ne kiracı onlar erişmesini iddiaları, bence yerine birden fazla hesap ekleme IIdentityValidator<TUser>

İlgili konular