2010-08-09 15 views
11

asp.net में (MVC का उपयोग कर, लेकिन यह नियमित रूप से में भी होता है)क्या LastActivityDate को अपडेट किए बिना प्रोफ़ाइल तक पहुंचना संभव है?

Profile.GetProfile(username); 

है कि उपयोगकर्ता के लिए LastActivityDate अद्यतन करेगा। इसका उद्देश्य यह नहीं है कि कोई और उस उपयोगकर्ता की प्रोफ़ाइल देख रहा हो।

सदस्यता वर्ग आप एक दूसरी परम के साथ इस दिनांक को अपडेट करने के लिए कि क्या है, तो जैसे निर्दिष्ट कर सकते हैं में:

Membership.GetUser(username, false); // doesn't update LastActivityDate 
Membership.GetUser(username, true); // updates LastActivityDate 

वहाँ वैसे भी प्रोफाइल प्रदाता में इसी तरह कुछ करने के लिए है मेरे अपने प्रदाता लेखन के बिना?

उत्तर

9

आप एक बदसूरत कामकाज का उपयोग कर सकते हैं जिसमें aspnet_Profile_GetProperties संग्रहीत प्रक्रिया को बदलना शामिल है। यह उपयोगकर्ता प्रोफ़ाइल तक पहुंचने के दौरान गुण प्राप्त करने के लिए ज़िम्मेदार है।

ओपन इस प्रक्रिया और आप नीचे कोड निम्नलिखित मिलेगा:

IF (@@ROWCOUNT > 0) 
BEGIN 
    UPDATE dbo.aspnet_Users 
    SET [email protected] 
    WHERE UserId = @UserId 
END 

आदेश LastActivityDate अद्यतन करने को रोकने के लिए यह निकालें। Membership.GetUser(username, true); पर कॉल करते समय आपको अभी भी LastActivityDate अपडेट किया जाएगा।

+3

हाँ, स्पोक संपादित करना मैं जो कर रहा हूं वह है। किसी बिंदु पर मैं शायद अपनी साइट के प्रोफाइल हिस्से को कुछ कस्टम या फिर किसी तीसरे पक्ष का उपयोग करने के लिए फिर से लिखूंगा, लेकिन मुझे त्वरित सुधार की आवश्यकता है। – WildJoe

1

आप किसी ऐसे प्रदाता का उपयोग कर सकते हैं जो किसी और ने लिखा है, स्वयं लिखने के बजाय।

स्कॉट गुथरी के ब्लॉग पर यह एक संग्रहित प्रक्रियाओं जो जानकारी पाने के लिए अपने स्वयं के कोड से सीधे कहा जा सकता है शामिल हैं:

http://weblogs.asp.net/scottgu/archive/2006/01/10/435038.aspx

यह पृष्ठ एक MSI डाउनलोड जो के साथ काम करने के लिए एक नमूना आवेदन को स्थापित करता है कस्टम प्रोफाइल डेटा। तालिका आधारित प्रोफ़ाइल डिफ़ॉल्ट से बहुत बेहतर प्रदर्शन करती है, जहां सभी प्रोफाइल डेटा एक डेटाबेस डेटाबेस में निहित है। तालिका आधारित एक भी सीधे पूछताछ करना बहुत आसान है, जो आपके प्रश्न के साथ आपकी मदद करेगा। नमूना स्कीमा से संग्रहीत प्रक्रिया getCustomProfileData

अन्यथा कहा जाता है, बस क्वेरी डेटाबेस सीधे

+1

मैं सीधे डेटाबेस से पूछताछ के खिलाफ सलाह देता हूं। अन्यथा, महान पोस्ट। – bzlm

+0

@bzlm मैं आपके स्ट्रिंग दृश्यों का सम्मान करता हूं और यदि आप मुझे कोई कारण नहीं देते हैं तो मैं असहमत नहीं हो सकता। :) मैं याद रखने के लिए डेटाबेस से पूछताछ कर रहा हूं और मुझे कई कठिनाइयों का सामना करना पड़ा है। –