Membership.GetUser (اسم المستخدم) - كيفية العودة غلاف الصحيح؟

StackOverflow https://stackoverflow.com/questions/1001527

  •  05-07-2019
  •  | 
  •  

سؤال

وأنا على الحصول على اسم المستخدم من URL blah.com/kevinuk ذلك.

وأريد بعض المحتوى على الصفحة ليقول KevinUK وهو ماذا يكون المخزنة في الجدول عضوية ولكن عندما أفعل ما يلي، فإنها ترجع نفس غلاف مثل ما كان الإدخال.

MembershipUser member = Membership.GetUser(user);
string userName = member.UserName;

وكيف يمكنني استخدام اسم المستخدم صغيرة كمعلمة وإرجاع القيمة من قاعدة البيانات مع غلاف الصحيح؟

هل كانت مفيدة؟

المحلول

وليس من الواضح أي مزود العضوية الذي تستخدمه، ولكن يمكنك النزول بسهولة من ذلك وتجاوز أسلوب GetUser.

وإنشاء فئة تلك الفئة الموروثة من الدرجة MembershipProvider.

public class MyMembershipProvider : MembershipProvider

{

    public MyMembershipProvider()

    {

        //

        // TODO: Add constructor logic here

        //

    }

}

وتجاوز أسلوب getUser.

public override MembershipUser GetUser(string username, bool userIsOnline)

{
 ... Logic here to do a case insensitive lookup...

}

وأخيرا تحديث التكوين على شبكة الإنترنت لاستخدام مزود الجديد الخاص بك:

<system.web>
    <membership defaultProvider="MyMembershipProvider" userIsOnlineTimeWindow="10">
        <providers>
            <add name="MyMembershipProvider" type="Providers.FIFAMembershipProvider"     connectionStringName="ADConnectionString" ... />
        </providers>
    </membership>
</system.web>

وفيما يلي بعض الأمثلة:

HTTP: / /www.eggheadcafe.com/tutorials/aspnet/30c3a27d-89ff-4f87-9762-37431805ef81/aspnet-custom-membership.aspx

http://msdn.microsoft.com/ أون لنا / مكتبة / ms366730 (VS.80) .aspx اتصال

نصائح أخرى

وللأسف، فإن طريقة Membership.GetUser(string username) ببساطة تحدد اسم المستخدم وMembershipUser لقيمة المعلمة التي تم تمريرها. للحصول على غلاف الصحيح، فسوف تحتاج إلى استخدام Membership.GetUser(object providerUserKey)، والتي تأخذ GUID المستخدم، أو تجاوز الأسلوب السابق والإجراءات المخزنة منها للعودة اسم المستخدم فتش بشكل صحيح.

وأو، هل يمكن ببساطة أن يعود إلى الوراء المكالمات إلى طريقتين GetUser() مختلفة، ولكن هذا الإسراف جدا.

وStumpled حول نفس الموضوع، وحاول فوق حل = أسهل طريقة للحصول على غلاف الصحيح:

var user = Membership.GetUser(userName.Text);
user = Membership.GetUser(user.ProviderUserKey);
var correctCasing = user.UserName;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top