2017-03-03 13 views
6

प्रमाणीकृत करने के लिए Azure मोबाइल ऐप का उपयोग करके मैं देखता हूं कि मैं अपने Azure मोबाइल ऐप में नैन्सी जोड़ सकता हूं। http://www.strathweb.com/2014/02/running-owin-pipeline-new-net-azure-mobile-services/ लेकिन मैं नैन्सी के लिए प्रमाणीकरण कैसे जोड़ सकता हूं? यहां लक्ष्य एक ही ऐप का उपयोग कर एक वेब ऐप और एक मोबाइल ऐप रखने में सक्षम होना है।नैन्सी

लक्ष्य: यदि नैन्सी पेज को प्रमाणीकरण की आवश्यकता है, तो ~/.auth/login/aad (उदाहरण के लिए) पर जाएं, फिर मूल पृष्ठ पर वापस आएं।

मैं कहाँ हूँ:

  1. बनाया नया Azure मोबाइल ऐप ASP.NET अनुप्रयोग
  2. जोड़ा गया नैन्सी
  3. निकालें डिफ़ॉल्ट MobileAppConfig और

    new MobileAppConfiguration() 
         .MapApiControllers() 
         .AddTables(
          new MobileAppTableConfiguration() 
           .MapTableControllers() 
           .AddEntityFramework() 
         ) 
         .AddPushNotifications() 
         .MapLegacyCrossDomainController() 
         .ApplyTo(config); 
    
  4. के साथ बदलें एक बनाएं इंडेक्स मॉड्यूल और पुष्टि करें कि नैन्सी

    काम करता है
    public IndexModule() 
    { 
        Get["/"] = _ => "Hello"; 
    } 
    
  5. एक AdminModule बनाएँ, RequiresAuthentication स्थापित करने Nancy.Authentication.Forms

    public AdminModule() 
        : base("admin") 
    { 
        Get["/"] = _ => 
        { 
         this.RequiresAuthentication(); 
         return "This is admin"; 
        }; 
    } 
    
  6. शायद करने के लिए गलत बात के बाद आता है, लेकिन मैं

    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); 
    } 
    

यह भेजता है उपयोगकर्ता को सही लेख पृष्ठ पर, लेकिन जब ज़ूमो इसे वापस करता है (1) टोकन के साथ कॉलबैक पर लौटाता है, और (2) एक लिंक देता है "वेबसाइट" जो वापसी यूआरएल की बजाय मुख्य साइट है, और (3) अभी भी वास्तव में काम नहीं करती है।

अद्यतन। नैन्सी की तरह दिखता है। फर्म। प्रमाणीकरण इस पर एक मृतक है। क्या मैं ओविन से UseCookieAuthentication का उपयोग कर सकता हूं। सुरक्षा?

अद्यतन 2। मैंने नैन्सी से छुटकारा पा लिया। फर्म। प्रमाणीकरण। ऐसा लगता है जब ज़ूमो प्रमाणीकरण समाप्त करता है, ओविन server.user वास्तव में सेट है।

protected override void ApplicationStartup(TinyIoCContainer container, IPipelines pipelines) 
    { 
     base.ApplicationStartup(container, pipelines); 

     Csrf.Enable(pipelines); 
     pipelines.BeforeRequest.AddItemToStartOfPipeline(FlowPrincipal); 
    } 

    private Response FlowPrincipal(NancyContext context) 
    { 
     var env = Get<IDictionary<string, object>>(context.Items, NancyMiddleware.RequestEnvironmentKey); 
     if (env != null) 
     { 
      var principal = Get<IPrincipal>(env, "server.User") as ClaimsPrincipal; 
      if (principal != null) 
      { 
       context.CurrentUser = new ClaimsPrincipalUserIdentity(principal); 
      } 
     } 

     return null; 
    } 

वैध उपयोग करने योग्य उपयोगकर्ता देगा। लॉगिन और रीडायरेक्ट कैसे ट्रिगर करें हालांकि एक और सवाल है।

अद्यतन 3। मैं Azure

में

enter image description here

लॉगिन सेटिंग का उपयोग कर के लिए मजबूर करने में सक्षम था और आश्चर्यजनक रूप से इस रीडायरेक्ट का ख्याल रखता है। यह सुनिश्चित नहीं है कि यह सिग्नलआर/ज़ूमो टेबल को कैसे प्रभावित करता है, लेकिन उम्मीद है कि यह हेडर की जांच कर पाएगा और उन पर लॉगिन लागू नहीं करेगा।

उत्तर

1

ब्लॉग पोस्ट आप संदर्भ Azure मोबाइल सेवाओं के लिए है, Azure मोबाइल ऐप्स नहीं।

मेरी पुस्तक - http://aka.ms/zumobook की अध्याय 6 देखें। यह स्पष्ट रूप से आपको विभिन्न प्लेटफार्मों के लिए ऐप सेवा प्रमाणीकरण को संभालने का तरीका दिखाता है। नैन्सी उनमें से एक नहीं है, लेकिन एमवीसी संस्करण आपको वहां सहायता करनी चाहिए।

+0

मीठा, धन्यवाद एड्रियन! – tofutim

+0

एड्रियन, मैंने Nancy.Authentication.Forms का उपयोग करने की कोशिश की लेकिन ज़ूमो .auth लॉगिन का उपयोग कर। हालांकि, ज़ूमो काफी काम नहीं करने के अलावा "वापसी यूआरएल" का सम्मान नहीं करता है। – tofutim

+0

दिलचस्प - आपको कहीं और इंगित करने से नफरत है, लेकिन आपको Azure फ़ोरम में यह (अधिमानतः एक साधारण रेपो के लिंक के साथ) पोस्ट करना चाहिए: https://social.msdn.microsoft.com/forums/en-US/home?forum = windowsazurewebsitespreview और फ़िल्टर = alltypes और sort = lastpostdesc - यह उचित लोगों द्वारा देखा जाएगा। दुर्भाग्यवश, इस पर कोई समस्या दर्ज करने के लिए गिटहब रेपो नहीं है। –

संबंधित मुद्दे