2017-03-03 30 views
6

Azure Mobile Uygulamasına Nancy ekleyebileceğimi görüyorum. http://www.strathweb.com/2014/02/running-owin-pipeline-new-net-azure-mobile-services/ ancak Nancy için kimlik doğrulamayı nasıl ekleyebilirim? Buradaki amaç, aynı sunucuyu kullanarak hem bir web uygulamasına hem de bir mobil uygulamaya sahip olmaktır. Nancy'yi doğrulamak için Azure Mobile Uygulamasını Kullanma

Hedef: Nancy sayfası kimlik doğrulama gerektiriyorsa, ~/.auth/login/aad öğesine atlayın (örneğin), ardından kaynak sayfaya geri dönün.

  1. düzenlendi yeni Azure Mobile App ASP.NET uygulaması
  2. Eklendi Nancy
  3. Kaldır varsayılan MobileAppConfig ve oluşturma

    new MobileAppConfiguration() 
         .MapApiControllers() 
         .AddTables(
          new MobileAppTableConfiguration() 
           .MapTableControllers() 
           .AddEntityFramework() 
         ) 
         .AddPushNotifications() 
         .MapLegacyCrossDomainController() 
         .ApplyTo(config); 
    
  4. ile değiştirin: Ben

    IndexModule ve Nancy'nin

    çalışmasını onaylayın
    public IndexModule() 
    { 
        Get["/"] = _ => "Hello"; 
    } 
    
  5. bir AdminModule oluşturma RequiresAuthentication yüklemeden Nancy.Authentication.Forms Muhtemelen

    public AdminModule() 
        : base("admin") 
    { 
        Get["/"] = _ => 
        { 
         this.RequiresAuthentication(); 
         return "This is admin"; 
        }; 
    } 
    
  6. yapılacak en yanlış şey sonra gelir, ama ben

    protected override void ConfigureRequestContainer(TinyIoCContainer container, NancyContext context) 
    { 
        base.ConfigureRequestContainer(container, context); 
        container.Register<IUserMapper, UserMapper>(); 
    } 
    
    protected override void RequestStartup(TinyIoCContainer container, IPipelines pipelines, NancyContext context) 
    { 
        base.RequestStartup(container, pipelines, context); 
    
        var formsAuthConfig = new FormsAuthenticationConfiguration 
        { 
         RedirectUrl = "~/.auth/login/aad", 
         UserMapper = container.Resolve<IUserMapper>(), 
        }; 
    
        FormsAuthentication.Enable(pipelines, formsAuthConfig); 
    } 
    

Bu gönderir var kullanıcı, doğru auth sayfasına, ancak zumo döndürdüğünde (1), belirteçle bir geri arama döndürür ve (2) bir bağlantı verir. returnUrl yerine ana site olan "web sitesi" ve (3) hala gerçekten çalışmıyor.

Güncelleştirme. Görünüşe göre Nancy.Forms.Authentication bunun bir çıkmazıdır. Owin.Security'den UseCookieAuthentication kullanabilir miyim?

Update2. Nancy.Forms.Authentication'tan kurtuldum. Zumo, kimlik doğrulama işlemini tamamladığında, owin server.user aslında ayarlanmış gibi görünüyor.

( ) Giriş ve yönlendirme nasıl tetiklenir, ancak başka bir sorudur.

Update3. Ben enter image description here

Azure'de

yılında ayarını kullanarak girişe zorlamak başardı Ve şaşırtıcı bu da yönlendirme ilgilenir. SignalR/Zumo tablolarını nasıl etkilediğinden emin değilsiniz, ancak umarız ki, başlık için kontrol edip, bunlara giriş yapmaya zorlayamazsınız.

cevap

1

Başvuru yaptığınız blog yayını Azure Mobile Services için değil, Azure Mobile Services içindir.

Kitabımın bölüm 6'ya bakın - http://aka.ms/zumobook. Çeşitli platformlar için Uygulama Hizmeti Doğrulaması'nın nasıl ele alınacağını açıkça gösterir. Nancy doğrudan onlardan biri değil, ama MVC versiyonu size orada yardımcı olmalı.

+0

Tatlı, teşekkürler Adrian! – tofutim

+0

Adrian, Nancy.Authentication.Forms kullanmayı denedim ama zumo .auth girişini kullanarak. Bununla birlikte, zumo, tam çalışmayan yanı sıra "returnUrl" ye saygı göstermiyor. – tofutim

+0

İlginç - başka bir yere işaret etmekten nefret edersiniz, ancak bunu Azure Forumları'na (tercihen basit bir repo ile bağlantı) göndermelisiniz: https://social.msdn.microsoft.com/forums/en-US/home?forum = windowsazurewebsitespreview & filter = alltypes & sort = lastpostdesc - bu daha sonra uygun kişiler tarafından görülecektir. Ne yazık ki, bu konuda bir sorun bildirmek için bir GitHub repo yok. –