Restringir o acesso a um ramo de página
-
10-12-2019 - |
Pergunta
O objetivo é bloquear a recepção de mensagens de e-mail configurações de página interna (/_layouts/EmailSettings.aspx) para os usuários não-administrador ou, simplesmente, para todos, com uma exceção conta.
Via elemento de autorização na web de configuração de acesso não é reprimir com a seguinte entrada:
<location path="_layouts/EmailSettings.aspx">
<system.web>
<authorization>
<deny users="*"/>
</authorization>
</system.web>
</location>
Quaisquer pensamentos?
Solução 2
Não recomendável, mas eu adicionei o seguinte código para a página de layout:
em um elemento de script, com o runat="server" propriedade
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."));
}
Outras dicas
A maneira que eu fiz exatamente isso, um par de anos foi o desenvolvimento de uma SharePoint DelegateControl WebControl e descontínuas, é para o PlaceHolderAdditionalPageHead.
O WebControl seria incluir o código para verificar se o "/_layouts/EmailSettings.aspx" a página é atingido e se assim verificar que está a tentar aceder a esta página (no meu caso, a verificação da web.configuração para um determinado nome de usuário).
Na verdade, não foi muito difícil, uma vez que eu tenho o básico de canalização feito, mas requer o C# habilidades de codificação (não necessariamente o Visual Studio se você pode viver com algumas ferramentas básicas como o Notepad++ e o CodePlex WSPBuilder ferramenta de linha de comando).
Deixe-me saber se você está pronto para alguns áspero de código C# e eu vou desenterrá-lo a partir de um antigo arquivo de uma vez estou de volta em casa, de viajar mais tarde.