Taylohtio/AlertManager/SPSolutions.SharePoint.Aler.../SPSolutions.SharePoint/SPSolutions.SharePoint.Secu.../SPMembership.cs

190 lines
4.9 KiB
C#

using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
using SPSolutions.SharePoint.Resources;
using System;
using System.Collections.Specialized;
using System.Configuration;
using System.Threading;
using System.Web.Security;
namespace SPSolutions.SharePoint.Security
{
public class SPMembership
{
private SPContext m_context;
private SPWebApplication m_webApplication;
private SPUrlZone? m_urlZone;
private MembershipProvider m_membershipProvider;
private static NameValueCollection m_membershipProviderWildcards;
private static object m_wildCardLock = new object();
public SPContext Context
{
get
{
if (this.m_context != null)
{
return this.m_context;
}
return SPContext.Current;
}
set
{
this.m_context = value;
}
}
public SPUrlZone Zone
{
get
{
if (this.m_urlZone.HasValue)
{
return this.m_urlZone.Value;
}
if (this.Context != null)
{
return this.Context.Site.Zone;
}
return 0;
}
set
{
this.m_urlZone = new SPUrlZone?(value);
}
}
public SPWebApplication WebApplication
{
get
{
if (this.m_webApplication == null && this.Context != null)
{
return this.Context.Site.WebApplication;
}
return this.m_webApplication;
}
set
{
this.m_webApplication = value;
}
}
public MembershipProvider MembershipProvider
{
get
{
if (this.m_membershipProvider == null)
{
this.m_membershipProvider = SPMembership.GetMembershipProvider(this.WebApplication, this.Zone);
}
return this.m_membershipProvider;
}
}
public string MembershipProviderName
{
get
{
return SPMembership.GetMembershipProviderName(this.WebApplication, this.Zone);
}
}
public static NameValueCollection MembershipProviderWildcards
{
get
{
if (SPMembership.m_membershipProviderWildcards == null)
{
object wildCardLock;
Monitor.Enter(wildCardLock = SPMembership.m_wildCardLock);
try
{
if (SPMembership.m_membershipProviderWildcards == null)
{
SPMembership.m_membershipProviderWildcards = (NameValueCollection)ConfigurationManager.GetSection("SharePoint/PeoplePickerWildcards");
}
}
finally
{
Monitor.Exit(wildCardLock);
}
}
return SPMembership.m_membershipProviderWildcards;
}
}
public static MembershipProvider GetMembershipProvider(SPWebApplication webApp, SPUrlZone zone)
{
return Membership.Providers[SPMembership.GetMembershipProviderName(webApp, zone)];
}
public static string GetMembershipProviderName(SPWebApplication webApp, SPUrlZone zone)
{
SPIisSettings iisSettingsWithFallback = webApp.GetIisSettingsWithFallback(zone);
return iisSettingsWithFallback.MembershipProvider;
}
public static string GetStatusMessage(MembershipCreateStatus status)
{
if (status == MembershipCreateStatus.DuplicateEmail)
{
return StringsRes.MembershipCreateStatus_DuplicateEmail;
}
if (status == MembershipCreateStatus.DuplicateProviderUserKey)
{
return StringsRes.MembershipCreateStatus_DuplicateProviderUserKey;
}
if (status == MembershipCreateStatus.DuplicateUserName)
{
return StringsRes.MembershipCreateStatus_DuplicateUserName;
}
if (status == MembershipCreateStatus.InvalidAnswer)
{
return StringsRes.MembershipCreateStatus_InvalidAnswer;
}
if (status == MembershipCreateStatus.InvalidEmail)
{
return StringsRes.MembershipCreateStatus_InvalidEmail;
}
if (status == MembershipCreateStatus.InvalidPassword)
{
return StringsRes.MembershipCreateStatus_InvalidPassword;
}
if (status == MembershipCreateStatus.InvalidProviderUserKey)
{
return StringsRes.MembershipCreateStatus_InvalidProviderUserKey;
}
if (status == MembershipCreateStatus.InvalidQuestion)
{
return StringsRes.MembershipCreateStatus_InvalidQuestion;
}
if (status == MembershipCreateStatus.InvalidUserName)
{
return StringsRes.MembershipCreateStatus_InvalidUserName;
}
if (status == MembershipCreateStatus.ProviderError)
{
return StringsRes.MembershipCreateStatus_ProviderError;
}
if (status == MembershipCreateStatus.Success)
{
return StringsRes.MembershipCreateStatus_Success;
}
if (status == MembershipCreateStatus.UserRejected)
{
return StringsRes.MembershipCreateStatus_UserRejected;
}
return StringsRes.MembershipCreateStatus_Unknown;
}
public static string GetMembershipProviderWildcard(string providerName)
{
if (string.IsNullOrEmpty(providerName))
{
return string.Empty;
}
NameValueCollection membershipProviderWildcards = SPMembership.MembershipProviderWildcards;
if (membershipProviderWildcards == null | membershipProviderWildcards.Count == 0)
{
return string.Empty;
}
string text = membershipProviderWildcards[providerName];
if (text == null)
{
return string.Empty;
}
return text;
}
}
}