protected virtual SecurityToken GetSecurityToken(Login formsSignInControl) { if (formsSignInControl == null) { throw new ArgumentNullException("formsSignInControl"); } SecurityToken securityToken = null; //AAM settings must correnspond with the domain(s). SPIisSettings iisSettings = this.IisSettings; if (!iisSettings.UseClaimsAuthentication || !iisSettings.UseFormsClaimsAuthenticationProvider) { /* * ULSCat msoulscatWSSClaimsAuthentication = ULSCat.msoulscat_WSS_ClaimsAuthentication; * string str = string.Concat(this.LogPrefix, "Loaded the FormsSignInPage from request '{0}' but we are not in a context where claims forms sign is is enabled."); * object[] contextUri = new object[] { SPAlternateUrl.ContextUri }; * ULS.SendTraceTag(1430947, msoulscatWSSClaimsAuthentication, ULSTraceLevel.Unexpected, str, contextUri); */ throw new InvalidOperationException(); } //Initialize Providers try { ZimbraMembershipProvider z_membershipProvider = (ZimbraMembershipProvider)Membership.Providers["ZimbraMembershipProvider"]; ZimbraRoleProvider z_roleProvider = (ZimbraRoleProvider)Roles.Providers["ZimbraRoleProvider"]; } catch (Exception ex) { ProviderLogging.LogError(ex); } if (this.IsLoginControlInValidState(formsSignInControl)) { //string str1 = null; Uri appliesTo = this.AppliesTo; SPFormsAuthenticationProvider formsClaimsAuthenticationProvider = iisSettings.FormsClaimsAuthenticationProvider; CultureInfo invariantCulture = CultureInfo.InvariantCulture; object[] userName = new object[] { (formsSignInControl.RememberMeSet ? string.Empty : "non-"), formsSignInControl.UserName, formsClaimsAuthenticationProvider.MembershipProvider, formsClaimsAuthenticationProvider.RoleProvider, appliesTo, SPAlternateUrl.ContextUri }; //str1 = string.Format(invariantCulture, "{0}persistant security token for user '{1}' with membership provider '{2}' and role provider '{3}' with applies to '{4}' for request '{5}'.", userName); //ULS.SendTraceTag(1430977, ULSCat.msoulscat_WSS_ClaimsAuthentication, ULSTraceLevel.Verbose, string.Concat(this.LogPrefix, "Requesting a ", str1)); SPFormsAuthenticationOption sPFormsAuthenticationOption = SPFormsAuthenticationOption.None; if (formsSignInControl.RememberMeSet) { sPFormsAuthenticationOption = SPFormsAuthenticationOption.PersistentSignInRequest; } try { securityToken = SPSecurityContext.SecurityTokenForFormsAuthentication(appliesTo, formsClaimsAuthenticationProvider.MembershipProvider, formsClaimsAuthenticationProvider.RoleProvider, formsSignInControl.UserName, formsSignInControl.Password, sPFormsAuthenticationOption); //ULS.SendTraceTag(1430978, ULSCat.msoulscat_WSS_ClaimsAuthentication, ULSTraceLevel.Verbose, string.Concat(this.LogPrefix, "Successfully got a ", str1)); } catch //(Exception exception1) { /* * Exception exception = exception1; * ULSCat uLSCat = ULSCat.msoulscat_WSS_ClaimsAuthentication; * string str2 = string.Concat(this.LogPrefix, "Failed to get a ", str1, " Exception: '{0}'"); * object[] objArray = new object[] { exception }; * ULS.SendTraceTag(1430979, uLSCat, ULSTraceLevel.Verbose, str2, objArray); */ securityToken = null; //SPSecurityContext.SecurityTokenForContext } } else { /* * ULSCat msoulscatWSSClaimsAuthentication1 = ULSCat.msoulscat_WSS_ClaimsAuthentication; * string str3 = string.Concat(this.LogPrefix, "Cancelling sign-in for request '{0}'."); * object[] contextUri1 = new object[] { SPAlternateUrl.ContextUri }; * ULS.SendTraceTag(1430976, msoulscatWSSClaimsAuthentication1, ULSTraceLevel.VerboseEx, str3, contextUri1); */ securityToken = null; } return(securityToken); }
/* * private ZimbraServer _zimbra; * * internal ZimbraServer Zimbra * { * get * { * if(this._zimbra == null) * { * this._zimbra = new ZimbraServer("mail.clubcloud.nl"); * } * * return this._zimbra; * } * } */ /// <summary> /// /// </summary> /// <param name="gebruiker"></param> /// <param name="settings"></param> /// <returns></returns> private async Task <bool> CreateOrUpdateMembershipGebruiker(ClubCloud_Gebruiker gebruiker, ClubCloud_Setting settings = null) { try { if (settings == null) { settings = GetClubCloudSettings(gebruiker.Bondsnummer);// beheerModel.ClubCloud_Settings.SingleOrDefault(g => g.GebruikerId == gebruiker.Id); } //ClubCloud_Setting updatesettings = beheerModel.ClubCloud_Settings.SingleOrDefault(g => g.GebruikerId == gebruiker.Id); if (settings != null)// && updatesettings.Id != null) { ZimbraMembershipUser zuser = await ZimbraMembershipProvider.GetZimbraUserAsync(gebruiker.Bondsnummer, false); MembershipCreateStatus status = MembershipCreateStatus.Success; if (zuser == null) { string nummer = "00000"; ClubCloud_Vereniging vereniging = null; try { vereniging = GetVerenigingById(gebruiker.Bondsnummer, gebruiker.VerenigingId.Value, false); } catch { } if (vereniging != null) { nummer = vereniging.Nummer; } string password = gebruiker.Achternaam[0] + gebruiker.Bondsnummer + '!'; string email = string.IsNullOrEmpty(gebruiker.EmailKNLTB) ? gebruiker.Bondsnummer + "@clubcloud.nl" : gebruiker.EmailKNLTB; Tuple <MembershipCreateStatus, MembershipUser> result = await ZimbraMembershipProvider.CreateUserAsync(gebruiker.Bondsnummer + "@clubcloud.nl", password, email, "Wat uw verenigingsnummer?", nummer, true, null); if (result.Item1 == MembershipCreateStatus.Success) { status = result.Item1; zuser = result.Item2 as ZimbraMembershipUser; } } if (status == MembershipCreateStatus.Success) { List <ClubCloud_Address> adressen = GetAddressenForGebruikerById(gebruiker.Id, false, settings); ClubCloud_Address home = new ClubCloud_Address(); ClubCloud_Address post = new ClubCloud_Address(); if (adressen != null && adressen.Count > 0) { home = adressen.First(); post = adressen.Last(); } ClubCloud_Nationaliteit nationaliteit = GetNationaliteitById(gebruiker.Bondsnummer, gebruiker.NationaliteitId.Value, false, settings); ClubCloud_Vereniging vereniging = GetVerenigingById(gebruiker.Bondsnummer, gebruiker.VerenigingId.Value, false); ClubCloud_District district = GetDistrictById(gebruiker.Bondsnummer, vereniging.DistrictId.Value, false, settings); if (gebruiker != null) { zuser.cn = gebruiker.Volledigenaam; zuser.sn = gebruiker.Achternaam; zuser.displayName = gebruiker.Volledigenaam; zuser.employeeNumber = gebruiker.Id.ToString(); zuser.givenName = gebruiker.Voornamen; zuser.initials = gebruiker.Voorletters; zuser.zimbraPrefMailForwardingAddress = gebruiker.EmailKNLTB; if (!string.IsNullOrWhiteSpace(gebruiker.TelefoonOverdag)) { zuser.telephoneNumber = Regex.Replace(gebruiker.TelefoonOverdag, @"[^A-Za-z0-9+ -]+", ""); } if (!string.IsNullOrWhiteSpace(gebruiker.TelefoonAvond)) { zuser.homePhone = Regex.Replace(gebruiker.TelefoonAvond, @"[^A-Za-z0-9+ -]+", ""); } if (!string.IsNullOrWhiteSpace(gebruiker.Mobiel)) { zuser.mobile = Regex.Replace(gebruiker.Mobiel, @"[^A-Za-z0-9+ -]+", ""); } } if (nationaliteit != null) { zuser.co = nationaliteit.Naam; } if (vereniging != null) { zuser.o = vereniging.Nummer; zuser.company = vereniging.Nummer; } if (district != null) { zuser.departmentNumber = district.Naam; } if (home != null) { zuser.homePostalAddress = home.Straat + " " + home.Nummer + " " + home.Toevoeging + " " + Environment.NewLine + home.Postcode + "," + home.Stad + " " + Environment.NewLine + home.Gemeente + "," + home.Provincie; zuser.l = home.Stad; zuser.postalCode = home.Postcode; zuser.st = home.Gemeente; zuser.street = home.Straat + " " + home.Nummer + " " + home.Toevoeging; } if (post != null) { zuser.postalAddress = post.Straat + " " + post.Nummer + " " + post.Toevoeging + " " + Environment.NewLine + post.Postcode + "," + post.Stad + " " + Environment.NewLine + post.Gemeente + "," + post.Provincie; } } if (zuser != null && status == MembershipCreateStatus.Success) { await ZimbraMembershipProvider.UpdateZimbraUserAsync(zuser); } } //} return(true); } catch (Exception) { return(false); } }