سؤال

يقوم مستخدم بتسجيل الدخول إلى موقع SharePoint الذي أنشأناه باستخدام عنوان بريدك الإلكتروني وهذا اسم المستخدم الخاص به. ولكن هذا يخلق مشكلة للمليسين.

عندما يقوم المستخدم بإنشاء عنوان URL الخاص بك تخفيض أي شيء بعد الرمز @ في اسم المستخدم، لذلك إذا كان عنوان البريد الإلكتروني المستخدمين هو User1@test.com عنوان URL إلى Mysite الخاص به:

http://host/personal/user1/

ومع ذلك، فإن هذا يسبب مشكلة إذا كان مستخدم آخر مع نفس بادئة البريد الإلكتروني ولكن مع مجال مختلف أي user1@annotherdomain.com. هذا المستخدمين يجب أن يكون عنوان URL MySite

http://host/personal/user1/

عندما يقوم المستخدم بتسجيل الدخول إلى الموقع، نقوم بإنشاء ملف التعريف الخاص به ومحيط باستخدام هذا الرمز:

if (!profileManager.UserExists(username))
{
  UserProfile profile = profileManager.CreateUserProfile(username);
  profile["PreferredName"].Value = fullname!=null?fullname:username;
  profile["WorkEmail"].Value = email != null ? email : "";
  profile["PersonalSpace"].Value = email;
  profile.Commit();
  #region create User My Site
  using (SPSite site = profile.PersonalSite)
  {
    if (site == null)
    {
      try
      {
        profile.CreatePersonalSite();
      }
      catch (Exception ex)
      {                                           
        System.Diagnostics.Trace.WriteLine(string.Format("CreateMySite - {0}", ex.Message));
        throw ex;
      }
    }
  }
  #endregion
}
HttpContext.Current = httpCxt;

هل هناك شيء يمكنني القيام به هنا للتحكم في عنوان URL المستخدم؟

-- تعديل

السلوك أعلاه هو الافتراضي للطحالب. أي أنا لا أسلك يدويا من عنوان البريد الإلكتروني للمستخدمين، وهذا شيء يفعل الطحلب تلقائيا. أفضل أن أقول يجب أن يكون عنوان URL:

http://host/personal/user1-at-test-dot-com 

لقد حاولت الهروب من عنوان البريد الإلكتروني وتعيينه لقيمة المساحة الشخصية مثل:

string clean = email.Replace("@","-at-");
profile["PersonalSpace"].Value= clean;

....

لكن هذا لم يساعد.

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

المحلول

هذه طريقة غير شائعة للقيام بذلك، هل هناك سبب محدد يتم إنشاء المستخدمين بناء على البريد الإلكتروني وليس اسم المستخدم؟ على أي حال، إليك بعض الأفكار.

  • استخدم حلول الصراع العادي للتسمية، تضمين المجال في URL User_Domain،
  • قم بإنشاء User_1 معرف فريد من نوعه، user_2 إذا حدث تعارض وتحقق من الرقم الذي يتم بعده بعد إشراك السفلات السفلية.

تعديل

بناء على تحريرك، يمكنك تكوين حل النزاعات في الطحلب نفسه، ولهذا السبب قلت أنها كانت طريقة غريبة لإنشاء عناوين URL،

في SSP الخاص بك، انتقل إلى إعدادات Mysite، انظر إلى تنسيق تسمية الموقع مجموعة

خياراتك:

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top