2011-11-16 9 views
19

मैंने नैन्सी के लिए एक लॉगिन मॉड्यूल कोडिंग करना शुरू किया, लेकिन यह मेरे लिए हुआ कि संभवतः मुझे प्रमाणीकरण को एक अलग तरीके से करने की आवश्यकता है। क्या नैन्सी में लेख करने का एक स्वीकार्य तरीका है? मैं अभी दो परियोजनाओं की योजना बना रहा हूं: वेब और जेसन सेवा। मुझे दोनों के लिए लेख की आवश्यकता होगी।मुझे नैन्सी के साथ प्रमाणीकरण कैसे संभालना चाहिए?

+1

वास्तव में सुनिश्चित करें कि आप क्या कह रहे हैं - आप क्या लिख ​​रहे थे और क्या "एक अलग तरह से" क्या है? प्रपत्र प्रमाणीकरण और बुनियादी प्रमाणीकरण बॉक्स के बाहर समर्थित हैं। –

+0

ठीक है, नैन्सी की वेबसाइट के लिए, फॉर्म बहुत अच्छा काम करता है। मेरी जेसन सेवा के लिए, मैंने अपना खुद का प्रमाणीकरण टुकड़ा लिखा है जो प्रत्येक अनुरोध पर एक एपीआई कुंजी की जांच करता है। –

उत्तर

23

स्टीवन लिखते हैं कि नैन्सी मूलभूत रूप से समर्थन करती है और बॉक्स से बाहर निकलती है। कैसे करना है देखने के लिए प्रत्येक एक नज़र इन दो डेमो क्षुधा है: https://github.com/NancyFx/Nancy/tree/master/samples/Nancy.Demo.Authentication.Forms और https://github.com/NancyFx/Nancy/tree/master/samples/Nancy.Demo.Authentication.Basic

उन डेमो यहां के दूसरे से एक मॉड्यूल की आवश्यकता है प्रमाणन:

namespace Nancy.Demo.Authentication.Forms 
{ 
    using Nancy; 
    using Nancy.Demo.Authentication.Forms.Models; 
    using Nancy.Security; 

    public class SecureModule : NancyModule 
    { 
    public SecureModule() : base("/secure") 
    { 
     this.RequiresAuthentication(); 

     Get["/"] = x => { 
      var model = new UserModel(Context.CurrentUser.UserName); 
      return View["secure.cshtml", model]; 
     }; 
    } 
    } 
} 

और एक bootstrapper स्निपेट है, जो प्रपत्र सेट अनुरोध पाइप लाइन में अधिकार का:

protected override void RequestStartup(TinyIoCContainer requestContainer, IPipelines pipelines, NancyContext context) 
    { 
     // At request startup we modify the request pipelines to 
     // include forms authentication - passing in our now request 
     // scoped user name mapper. 
     // 
     // The pipelines passed in here are specific to this request, 
     // so we can add/remove/update items in them as we please. 
     var formsAuthConfiguration = 
      new FormsAuthenticationConfiguration() 
      { 
       RedirectUrl = "~/login", 
       UserMapper = requestContainer.Resolve<IUserMapper>(), 
      }; 

     FormsAuthentication.Enable(pipelines, formsAuthConfiguration); 
    } 
+8

यह उत्तर नैन्सी द्वारा संचालित वेबसाइट के लिए स्पॉट पर है। एक सेवा के लिए, नैन्सी से अभी भी कुछ याद आ रही है। मैंने एक पुल अनुरोध सबमिट किया है (https://github.com/NancyFx/Nancy/pull/650#issuecomment-6416528) जिसमें एक नया स्टेटलेस प्रमाणीकरण टुकड़ा है। उस प्रकार का प्रमाणीकरण वास्तव में महान वेब या सेवा प्रदाता प्रौद्योगिकी के रूप में नैन्सी (कम से कम मेरे लिए) को बाहर करता है। –

+0

@ByronSommardahl मुझे लगता है कि आपका पुल अनुरोध अब नैन्सी का हिस्सा है। अच्छा! –

1

मैं एक उदाहरण बनाया अपने खुद के सीखने के लिए नैन्सी के साथ उपयोगकर्ता प्रबंधन के साथ प्रमाणन वेब अनुप्रयोग का निर्माण करती है। यदि आप इसके साथ खेलना चाहते हैं तो यह यहां गितूब पर है।

https://github.com/GusBeare/Nancy-UserManager

नहीं
संबंधित मुद्दे