Limitare l'accesso a una pagina dell'alveare
-
10-12-2019 - |
Domanda
Lo scopo è quello di bloccare le impostazioni di posta elettronica in arrivo Pagina interna (/_Layouts/emailsetings.aspx) agli utenti non amministrativi o, semplicemente, a tutti con un account di eccezione.
Via Elemento di autorizzazione inWeb Config Nessun accesso è frenante con la seguente voce:
<location path="_layouts/EmailSettings.aspx">
<system.web>
<authorization>
<deny users="*"/>
</authorization>
</system.web>
</location>
.
Qualche idea?
Soluzione 2
Non raccomandabile , ma ho aggiunto il seguente codice alla pagina Layout:
In un elemento di script, con runat= proprietà "server"
. protected void Page_Load(object sender, EventArgs e)
{
if(!SPContext.Current.Web.CurrentUser.IsSiteAdmin)
SPUtility.HandleAccessDenied(new Exception("Only Site Admins can access Incoming e-mail settings."));
}
Altri suggerimenti
Il modo in cui ho fatto esattamente questo un paio di anni di età stava sviluppando un WebControl di SharePoint DelegateControl e prepararlo al portholerodditionalpagePage.
Il WebControl includerebbe il codice per verificare se la pagina "/_Layouts/emailsetings.aspx" viene colpito e se è in tal caso che controlla chi sta cercando di raggiungere questa pagina (nel mio caso checking web.config per un particolare nome utente).
.Non è stato in realtà molto difficile una volta che ho fatto l'impianto idraulico di base ma richiede le capacità di codifica C # (non necessariamente Visual Studio se è possibile vivere con alcuni strumenti di base come Blocco note ++ e lo strumento Commandline Codeplex Wspbuilder).
Fammi sapere se sei pronto per un po 'di codice c # e lo scatenerò da un vecchio archivio una volta tornato a casa dal viaggiare più tardi.