asp.net mvc एएसपी.नेट एमवीसी में प्रोफाइल प्रदाता कार्यान्वित करना




asp.net-mvc profile (4)

आपको यह करने की आवश्यकता है:

1) Web.config के अनुभाग में, अपनी अन्य विशेषता सेटिंग्स के अतिरिक्त "विरासत" विशेषता जोड़ें:

<profile inherits="MySite.Models.ProfileCommon" defaultProvider="....

2) Web.config से पूरे <properties> अनुभाग को हटाएं, क्योंकि आपने उन्हें पहले से ही अपने कस्टम प्रोफाइल कॉमन क्लास में परिभाषित किया है और पिछले चरण में अपनी कस्टम क्लास से उत्तराधिकारी को निर्देश दिया है

3) अपनी ProfileCommon.GetProfile () विधि का कोड बदलें

public virtual ProfileCommon GetProfile(string username)        
{            
     return Create(username) as ProfileCommon;      
}

उम्मीद है की यह मदद करेगा।

मेरे जीवन के लिए, मैं एक एमवीसी परियोजना में काम करने के लिए SqlProfileProvider नहीं प्राप्त कर सकता हूं जिस पर मैं काम कर रहा हूं।

पहली दिलचस्प बात जो मुझे एहसास हुआ वह यह है कि विजुअल स्टूडियो स्वचालित रूप से आपके लिए प्रोफ़ाइल कॉमन प्रॉक्सी क्लास उत्पन्न नहीं करता है। यह एक बड़ा सौदा नहीं है क्योंकि यह प्रोफाइलबेस क्लास को विस्तारित करने का मामला है। प्रोफाइल कॉमन क्लास बनाने के बाद, मैंने उपयोगकर्ता प्रोफ़ाइल बनाने के लिए निम्न क्रिया विधि लिखी।

[AcceptVerbs("POST")]
public ActionResult CreateProfile(string company, string phone, string fax, string city, string state, string zip)
{
    MembershipUser user = Membership.GetUser();
    ProfileCommon profile = ProfileCommon.Create(user.UserName, user.IsApproved) as ProfileCommon;

    profile.Company = company;
    profile.Phone = phone;
    profile.Fax = fax;
    profile.City = city;
    profile.State = state;
    profile.Zip = zip;
    profile.Save();

    return RedirectToAction("Index", "Account"); 
}

मेरी समस्या यह है कि ProfileCommon.Create () को कॉल करने के लिए प्रोफ़ाइल कॉमॉन टाइप करने के लिए नहीं डाला जा सकता है, इसलिए मैं अपनी प्रोफ़ाइल ऑब्जेक्ट वापस पाने में सक्षम नहीं हूं, जो स्पष्ट रूप से अगली पंक्ति विफल होने के कारण अगली पंक्ति विफल होने का कारण बनती है।

मेरे web.config का एक स्निपेट निम्नलिखित है:

<profile defaultProvider="AspNetSqlProfileProvider" automaticSaveEnabled="false" enabled="true">
    <providers>
        <clear/>
        <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider, System.Web, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" connectionStringName="ApplicationServices" applicationName="/" />
    </providers>
    <properties>
        <add name="FirstName" type="string" />
        <add name="LastName" type="string" />
        <add name="Company" type="string" />
        <add name="Phone" type="string" />
        <add name="Fax" type="string" />
        <add name="City" type="string" />
        <add name="State" type="string" />
        <add name="Zip" type="string" />
        <add name="Email" type="string" >
    </properties>
</profile>

सदस्यता प्रदाता एक झुकाव के बिना काम कर रहा है, इसलिए मुझे पता है कि कनेक्शन स्ट्रिंग अच्छी है।

अगर यह सहायक है, तो यहां मेरा प्रोफाइल कॉमन क्लास है:

public class ProfileCommon : ProfileBase
    {
        public virtual string Company
        {
            get
            {
                return ((string)(this.GetPropertyValue("Company")));
            }
            set
            {
                this.SetPropertyValue("Company", value);
            }
        }

        public virtual string Phone
        {
            get
            {
                return ((string)(this.GetPropertyValue("Phone")));
            }
            set
            {
                this.SetPropertyValue("Phone", value);
            }
        }

        public virtual string Fax
        {
            get
            {
                return ((string)(this.GetPropertyValue("Fax")));
            }
            set
            {
                this.SetPropertyValue("Fax", value);
            }
        }

        public virtual string City
        {
            get
            {
                return ((string)(this.GetPropertyValue("City")));
            }
            set
            {
                this.SetPropertyValue("City", value);
            }
        }

        public virtual string State
        {
            get
            {
                return ((string)(this.GetPropertyValue("State")));
            }
            set
            {
                this.SetPropertyValue("State", value);
            }
        }

        public virtual string Zip
        {
            get
            {
                return ((string)(this.GetPropertyValue("Zip")));
            }
            set
            {
                this.SetPropertyValue("Zip", value);
            }
        }

        public virtual ProfileCommon GetProfile(string username)
        {
            return ((ProfileCommon)(ProfileBase.Create(username)));
        }
    }

क्या मैं गलत क्या कर रहा हूं पर कोई विचार? क्या आपने बाकी में से किसी को अपने एएसपी.नेट एमवीसी परियोजनाओं के साथ प्रोफाइलप्रोवाइडर को सफलतापूर्वक एकीकृत किया है?

पहले ही, आपका बहुत धन्यवाद...


वेब प्रोफाइल बिल्डर का प्रयास करें। यह एक बिल्ड स्क्रिप्ट है जो web.config से स्वचालित रूप से वेबप्रोफाइल क्लास (प्रोफाइल कॉमॉन के समतुल्य) उत्पन्न करती है।


एमवीसी बीटा में web.config फ़ाइल गलत है। SqlProfileProvider System.Web.Profile में है, सिस्टम नहीं। वेब सुरक्षा। इसे बदलें, और यह आपके लिए काम करना शुरू कर देना चाहिए।


पूरे प्रश्न के बारे में निश्चित नहीं है, लेकिन एक बात मैंने आपके कोड में देखी है:

ProfileCommon profile = (ProfileCommon)ProfileCommon.Create(user.UserName, user.IsApproved) as ProfileCommon;

आपको (प्रोफाइलकॉम) और प्रोफाइलकॉम दोनों की आवश्यकता नहीं है। वे दोनों ही करते हैं, लेकिन () फेंकता है और अपवाद करता है, जबकि कलाकारों को कास्ट नहीं बनाया जा सकता है।







provider