var strUsername = SPContext.Current.Web.CurrentUser.LoginName;
Questo funziona nel caso in cui la nostra autenticazione sia in "Classic Mode".
Nel in cui la il nostro tipo di autenticazione sia di tipo "Claims based" il risultato dell'istruzione sopra riportata sarà il seguente:
i:0#.w|Domain\ username
Occorrerà quindi differenziare le due tipologie di autenticazione utilizzando lo strumento SPClaimProviderManager fornito da Sharepoint contenuto in Microsoft.SharePoint.Administration.Claims
string strUsername = string.Empty; SPClaimProviderManager mgr = SPClaimProviderManager.Local; if (SPClaimProviderManager.IsEncodedClaim(SPContext.Current.Web.CurrentUser.LoginName)) strUsername = mgr.DecodeClaim(SPContext.Current.Web.CurrentUser.LoginName).Value; else
strUsername = SPContext.Current.Web.CurrentUser.LoginName;
Di seguito alcuni riferimenti al tema:
http://www.wictorwilen.se/Post/How-Claims-encoding-works-in-SharePoint-2010.aspx
http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.administration.claims.spclaimprovidermanager.aspx
http://blog.mastykarz.nl/programmatically-converting-login-name-claim/
Nessun commento:
Posta un commento