6

मैं एएसपी.नेट वेब फॉर्म के साथ 5 साल के अनुभव से आया हूं, और मैं एएसपी.नेट एमवीसी के लिए नया हूं। अब मैं कुछ ट्यूटोरियल, वीडियो ट्यूटोरियल और किताबों के साथ एमवीसी सीखने की कोशिश कर रहा हूं।
मैं विजुअल स्टूडियो 2012 और ब्रांड नए एएसपी.नेट एमवीसी 4 का उपयोग कर रहा हूं ताकि म्यूचुअल फंड के पोर्टफोलियो को प्रबंधित करने के लिए थोड़ा वेब एप्लिकेशन बनाया जा सके। यह मुझे नए पैटर्न के अंदर आने और कई नई चीजें सीखने देना चाहिए ...
मेरा आवेदन कुछ अन्य मित्रों को भी ऐसा करने देना चाहिए। तो इसे विभिन्न उपयोगकर्ताओं के पोर्टफोलियो प्रबंधित करना है।
मैंने एंटिटी फ्रेमवर्क कोड पहले के साथ थोड़ा डीबी बनाया है, इसलिए मेरे पास कुछ बुनियादी मॉडल हैं: फंड, पोर्टफोलियो, शेयर, जमा, स्रोत और उपयोगकर्ता। एक उपयोगकर्ता के पास कई फंडों के साथ कई पोर्टफोलियो हो सकते हैं। प्रत्येक उपयोगकर्ता की अपनी जमा सूची होती है। प्रत्येक फंड में कई शेयर मूल्य होते हैं (एक/दिन)।
स्रोत मॉडल बस एक सारणी है जहां मैंने एक विशिष्ट निधि के साझा डेटा के लिए प्रत्येक वेबसाइट स्रोत के लिए एक यूआरएल रखा है। तो, एक फंड में कई स्रोत हैं। मैं फिर दिन में एक बार उन वेबसाइटों से डेटा प्राप्त करने के लिए एक स्क्रैपर कक्षा का उपयोग करता हूं।
यह एप्लिकेशन की मुख्य संरचना है। अब, मुझे यह जानने की ज़रूरत है किएएसपी.नेट एमवीसी एएसपी.NET सदस्यता प्रदाता का उपयोग कर उपयोगकर्ता सामग्री का प्रबंधन कैसे करें

1) उपयोगकर्ता का खाता प्रबंधित करें।
क्या मुझे अपने डीबी पर एएसपी.NET सदस्यता डीबी संरचना को एकीकृत करना चाहिए और उपयोगकर्ताओं को प्रबंधित करने के लिए मेरी कस्टम उपयोगकर्ता तालिका के बजाय इसका उपयोग करना चाहिए?

2) का प्रबंधन करें उपयोगकर्ता सामग्री: विभागों, फंड, आदि
सबसे आसान और सबसे खूबसूरत MVC पैटर्न में जिस तरह से, उपयोगकर्ता हो रही बनाने के लिए प्रमाणीकरण और सभी प्राधिकरण सत्यापन लागू करने के लिए क्या है उसका अपना डेटा? क्या मुझे हर नियंत्रक पर हर कार्रवाई के अंदर यह जांचने की ज़रूरत है?

तो, दूसरे शब्दों में, मुझे अपने नियंत्रकों को कैसे लागू करना है? उदा .:

[Authorize] 
public class PortfolioController : Controller 
{ 
    private FundMonitorContext db = new FundMonitorContext(); 

    public ActionResult Index() 
    { 
     // Check user ID and give back to the view only his portfolios... 

     var portfolio = db.Portfolios.List(); 
     return View(portfolio.ToList()); 
    } 

    ... 

    public ActionResult Details(int id = 0) 
    { 
     ... 
    } 

    //Other actions... 
} 

मैं वास्तव में हर सुझाव की सराहना करता हूं!

+1

चेकआउट simplemembershipprovider http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5-web -forms-and-asp-net-mvc-4-templates.aspx, यह माइक्रोसॉफ्ट –

+0

द्वारा प्रदान की गई सदस्यता प्रदाताओं का एक अधिक लचीला संस्करण है। मैं इसे आज़मा दूंगा ... मैं एएसपी.NET सदस्यता प्रदाताओं के लिए भी नया हूं, क्योंकि मैंने ओरेकल डीबी और कस्टम यूजर्स और प्रोफाइल टेबल का उपयोग करके अपने अधिकांश एप्लिकेशन विकसित किए हैं। –

उत्तर

0
  1. यह एक विकल्प है जिसे आपको स्वयं बनाना है, लेकिन मैं अपना खुद का सदस्यता प्रदाता बनाना चाहता हूं, और यह मुश्किल नहीं है। अपने स्वयं के प्रदाता के साथ आप इसे अपने तरीके से बना सकते हैं, ऐसा नहीं कि माइक्रोसॉफ्ट ने 10 साल पहले क्या सोचा था। उदाहरण: http://www.codeproject.com/Articles/165159/Custom-Membership-Providers
    .NET 4.5 में SimpleMembershipProvider के साथ अपने स्वयं के प्रदाता बनाने के लिए यह और भी आसान है।

  2. [प्राधिकरण] विशेषता के साथ आप नियंत्रक को बता रहे हैं कि केवल ऑटोराइज्ड उपयोगकर्ता स्वीकार किया जाएगा। जब कोई उपयोगकर्ता साइन इन करता है तो आप फॉर्म नाम प्रमाणीकरण कुकी में उपयोगकर्ता नाम/उपयोगकर्ता आईडी डाल सकते हैं, ताकि आप उपयोगकर्ता नाम/उपयोगकर्ता आईडी को आसानी से प्राप्त कर सकें। यदि आप इसमें अधिक डेटा डालना चाहते हैं तो आप कुकी में ऑथिकेशन टिकटें भी बना सकते हैं।

    परीक्षण करना आसान बनाने के लिए मैं शायद ही कभी HttpContext.User और IPrincipal, http://www.hanselman.com/blog/IPrincipalUserModelBinderInASPNETMVCForEasierTesting.aspx के बीच बाध्यकारी बनाने की अनुशंसा करता हूं।

+0

मैंने पहले से ही कस्टम सदस्यता प्रदाताओं के कार्यान्वयन के बारे में कुछ पढ़ा है, लेकिन मैंने सोचा कि मेरा कार्यान्वयन एएसपी.NET एकीकृत एक से अलग नहीं होगा ... शायद मैं पुराने SHA1 डिफ़ॉल्ट से हैशिंग फ़ंक्शन को और अधिक विश्वसनीय के साथ बदल दूंगा SHA256 या SHA512। मेरे परिदृश्य में कौन सा फायदे हो सकता है? –

+0

मुझे लगता है कि आपको अपने डीबी में बहुत सारी संस्थाएं मिलेंगी जिनका आप उपयोग नहीं करेंगे। और सबसे बड़ा खो गया यह है कि आप कोई कॉन्फ़िगरेशन नहीं कर सकते हैं, लेकिन दूसरी तरफ आप कुछ समय बचाते हैं जब आपको पहले से कुछ मिल गया है ठीक है। लेकिन अगर आपको लगता है कि मानक प्रदाता आपकी ज़रूरतों को पूरा करेगा तो इसका इस्तेमाल क्यों न करें। – Rikard

0

प्रमाणीकरण और प्रमाणीकरण के लिए पहचान 2.0 का उपयोग करें। मुझे यह ब्लॉग http://typecastexception.com/post/2014/04/20/ASPNET-MVC-and-Identity-20-Understanding-the-Basics.aspx काफी उपयोगी पाया।असल में, आप का दावा आधारित प्रमाणीकरण मिल जाएगा और उसके बाद इस तरह के

[Authorize(Roles="Admin, Moderators")] 
public ActionResult MyAction(...) 

रूप AuthorizeAttribute साथ अपने कार्यों को सजाने कर सकते हैं और आप नियंत्रक में User.Identity संपत्ति के माध्यम से दावा है देख सकते हैं।

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