Pavel Novotný

.NET Framework, SharePoint, Dynamics CRM, RC Helicopters, Honda VFR CrossRunner

Office 365: Vypnutí povinné změny hesla pro všechny uživatele (vypršení hesla)

Nastavení nelze provést pomocí webového UI, je nutné provést aktualizaci PoweShellem.

  • Spusťte PowerShell pro O365 (Microsoft Online Services Modul for Windows PowerShell), pokud nemáte nainstalovaný, ke stáhnutí zde.
  • Připojte se ke své organizaci:
    Connect-MsolService
    image
  • Vypnutí pro všechny existující uživatele proveďte jednoduchým příkazem:
    Get-MsolUser | Set-MsolUser -PasswordNeverExpires $True
  • Pokud chcete pouze pro jednoho uživatele:
    Set-MsolUser -UserPrincipalName <username> -PasswordNeverExpires $True

Blog přesunut do Azure

Termín předplacení klasického hostingu se blížil konci, rozhodl jsem se proto přesunout svůj malý blog do Azure. Přemýšlel jsem nad tím už delší dobu, ale za celou dobu jsem nenašel žádné rozumné důvody proč to udělat – a v podstatě ani teď nemám. Stávající hosting mi vyhovoval, respektive jsem měl jiné měřítko, nechtěl jsem nic konfigurovat a starat se o to, všechno fungovalo léta a to byla moje spokojenost.

 

Nakonec jsem se rozhoupal:

 

  • přesun mi trval asi 3 hodiny, včetně dat
  • nejvíce mi trvalo přijít na některé ověřovací kroky (doména v Office365, credentials k FTP)
  • všechno jsem dělal ručně, žádné wizady nebo aplikační market na Azure
  • zůstal jsem u BlogEngine.NET
  • v podstatě velice jednoduché

 

Jediné co mám pořád s otazníkem je, kolik celá ta sranda bude měsíčně stát….

  

 

Překlad odkazů dle AAM – SharePoint

SharePoint automaticky překládá všechny odkazy dle aktuální zjištěné URL zóny z HttpRequestu, je jedno zda máte odkazy přímo ve webpart stránce, ve sloupci typu Hypertextový odkaz, případně přímo v richtextu, SharePoint se vždy při renderingu podívá, zda odkaz není definován v AAM a pokud ano, automaticky ho přeloží na tvar přístupný aktuálně přihlášenému uživateli. Je to funkce logická a žádaná, neboť je jedno, zda vložíte do textu odkaz z intranetové či extranetové zóny (url adresy SP portálu), všichni uživatelé budou mít odkazovaný obsah dostupný vždy.
Stejné chování je potřeba přenést i do vlastně vyvinutých funkcí, webpart, aplikačních stránek – protože tam to SharePoint sám o sobě neumí. Převod je sám o sobě velice jednoduchý, základem je objekt SPSite, který je ale nutné buď převzít z kontextu SPContext.Current.Site nebo ho inicializovat pomocí aktuální Url adresy HttpRequestu – tedy tak, aby došlo k inicializaci objektu SPSite ve správné zóně (SPUrlZone), nelze tedy tento objekt inicializovat pomocí GUID, kde se informace o zóně ztratí.
Pro překlad odkazu mám triviální rozšíření objektu SPSite:
 
public static string TranslateUrlByAAM(this SPSite site, string url) 
{ 
    if (site == null) 
        throw new ArgumentNullException("site"); 
    if (string.IsNullOrEmpty(url)) 
        return url;

    Uri originalUri = new Uri(url); 
    Uri translateUri = SPFarm.Local.AlternateUrlCollections 
        .RebaseUriWithAlternateUri(originalUri, site.Zone); 
    if (translateUri == null) 
        return url; 
    return translateUri.ToString(); 
}
 
Analogicky regex pro replace url odkazů v html textu.