Compartilhar via


Como a: Criar um aplicativo da Web em um site da Web SharePoint

Esta tarefa programação descreve como criar um personalizado aplicativo da Web ou Web Site, no Visual Studio 2005 que opera dentro de contexto de Windows SharePoint Services. O exemplo cria uma ferramenta que se reporta uma lista de todos os Web Sites o SharePoint para o qual um usuário especificado pertence, as well as uma lista dos grupos aos quais o usuário pertence para cada site.

Observação

A frase "aplicativo da Web" tem significado variável depending on o contexto.Este tópico diz respeito aplicativos baseado em navegador que executar de uma página ASPX.Não é sobre aplicativos da Web no sentido de Serviços de Informações da Internet (IIS) "Web Sites" ou "Pools de Aplicativos".Portanto, não sobre as coisas representadas pelo SPWebApplication Windows SharePoint Services 3.0 T:Microsoft.SharePoint.SPWebApplication é.

Procedimento

Para criar uma ferramenta por relatar Web sites SharePoint de um usuário e grupos

  1. Em Visual Studio 2005, crie um novo aplicativo da Web e defina uma referência para Microsoft.SharePoint.dll. Para informações sobre como executar essas etapas, ou sobre como criar um aplicativo da Web em um servidor Web de front-end de um computador remoto que não seja execução Windows SharePoint Services, consulte Guia de Introdução Com programaticamente personalizar uma Web Site SharePoint em Visual Studio.

  2. Em modo Design, use a caixa de ferramentas para adicionar um rotular, um caixa de texto e um botão para default.aspx. Para aberto a caixa de ferramentas, clique a caixa de ferramentas sobre o menu modo de exibição.

    Observação

    Para criar um aplicativo da Web que modifica dados no de conteúdo banco de dados, você precisará adicionar um FormDigest T:Microsoft.SharePoint.WebControls.FormDigest controle e uma diretiva página para o arquivo .aspx que contém a forma.Para informações sobre como adicionar esse controle, consulte para atualizar dados A validação de segurança e fazer postagens para atualizar os dados a validação de segurança e fazer postagens.

  3. Para aberto o nomeado code-behind file default.aspx.cs, clique duplo o botão você adicionou na etapa anterior.

  4. No início do arquivo, adicionar using ( Imports instruções em Visual Basic) que referenciam o Microsoft.SharePoint e Microsoft.SharePoint.Utilities, as follows:

                              Imports Microsoft.SharePoint
    Imports Microsoft.SharePoint.Utilities
    
                              using Microsoft.SharePoint;
    using Microsoft.SharePoint.Utilities;
    

    Você deve fazer referência o namespace Microsoft.SharePoint N:Microsoft.SharePoint em ordem para retornar o usuário especificado e os grupos aos quais o usuário pertence. Você deve fazer referência o namespace Microsoft.SharePoint.Utilities N:Microsoft.SharePoint.Utilities em ordem para codificar seqüências de caracteres que são exibidas de exemplo.

  5. No início do definição de classe retornar o objeto coleção site para o atual contexto solicitação como segue:

                              Partial Class _Default
       Inherits System.Web.UI.Page
    
       Dim oSite As SPSite = SPContext.Current.Site
       ...
    
                              public partial class _Default : System.Web.UI.Page
    {
       SPSite oSite = SPContext.Current.Site;
       ...
    
  6. Create a method that uses the AllWebs property of the SPSite class, the AllUsers property of the SPWeb class, and the Groups property of the SPUser class within nested foreach statements, in order to return a user object for the user name specified in the text box, as well as the list of groups to which that user belongs.

    Dentro de classe usar como padrão em default.aspx.cs, adicionar o seguinte método para retornar a usuários e grupos para cada site na atual coleção site:

                              Protected Sub GetSitesAndGroups()
       Dim strUser As String = SPEncode.HtmlEncode(TextBox1.Text) _
          & " is a user in the following groups:<BR>"
    
       Dim collWebs As SPWebCollection = oSite.AllWebs
    
       For Each oWebsite As SPWeb In collWebs
          Dim strGroups As String = ""
    
          'Use AllUsers not Users to ensure you find the user
          Dim collUsers As SPUserCollection = oWebsite.AllUsers
    
          For Each oUser As SPUser In collUsers
             If oUser.LoginName.ToUpper() = TextBox1.Text.ToUpper() Then
                Dim collGroups As SPGroupCollection = oUser.Groups
    
                For Each oGroup As SPGroup In collGroups
                   strGroups += SPEncode.HtmlEncode(oGroup.Name) & "  "
                Next oGroup
    
                strUser = strUser _
                   & oWebsite.ServerRelativeUrl.ToString() _
                   & " -- " & strGroups & "<BR>"
             End If
          Next oUser
    
          oWebsite.Dispose()
       Next oWebsite
    
       Label1.Text = strUser
    End Sub
    
                              protected void GetSitesAndGroups()
    {
       string strUser = SPEncode.HtmlEncode(TextBox1.Text) +
          " is a user in the following groups:<BR>";
    
       SPWebCollection collWebs = oSite.AllWebs;
    
       foreach (SPWeb oWebsite in collWebs)
       {
          string strGroups = "";
    
          /*Use AllUsers not Users to ensure you find the user*/
          SPUserCollection collUsers = oWebsite.AllUsers;
          foreach (SPUser oUser in collUsers)
          {
             if (oUser.LoginName.ToUpper() == TextBox1.Text.ToUpper())
             {
                SPGroupCollection collGroups = oUser.Groups;
    
                foreach (SPGroup oGroup in collGroups)
                {
                   strGroups += SPEncode.HtmlEncode(oGroup.Name) + 
                      "  ";
                }
    
                strUser += oWebsite.ServerRelativeUrl.ToString() +
                   " -- " + strGroups + "<BR>";
             }
          }
    
          oWebsite.Dispose();
       }
    
          Label1.Text = strUser;
    }
    

    O exemplo de código itera através de todos os usuários de todos os sites da Web dentro de atual coleção site e se o valor do LoginName P:Microsoft.SharePoint.SPUser.LoginName propriedade para um determinado usuário corresponda ao nome de usuário que é inserido na caixa de texto e os nomes dos grupos do todos os usuário para o site são coletados e exibidos.

  7. Para executar a codificar adicionado na etapa anterior e evitar o recebimento um negado acessar mensagem de erro, o usuário a implementação de método GetSitesAndGroups deve ter permissão Full Control. Adicione o seguinte codificar para o manipulador de eventos Button1_Click, que usa o RunWithElevatedPrivileges M:Microsoft.SharePoint.SPSecurity.RunWithElevatedPrivileges método para permitir que a atual usuário para iterar por meio do Usuários e grupos de cada site dentro de atual coleção site.

                              Protected Sub Button1_Click1(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
       Dim elevatedGetSitesAndGroups As New SPSecurity.CodeToRunElevated(AddressOf GetSitesAndGroups)
       SPSecurity.RunWithElevatedPrivileges(elevatedGetSitesAndGroups)
    End Sub
    
                              protected void Button1_Click(object sender, EventArgs e)
    {
       SPSecurity.CodeToRunElevated elevatedGetSitesAndGroups = new SPSecurity.CodeToRunElevated(GetSitesAndGroups);
       SPSecurity.RunWithElevatedPrivileges(elevatedGetSitesAndGroups);
    }
    
  8. O menu Debug, clique em iniciar depuração , ou pressionar F5. Se for exibida uma caixa diálogo Debugging Not Enabled, certifique-se adicionar um novo arquivo web.config com depuração habilitado estiver selecionada e clique OK .

    O navegador abre a página. Quando você tipo Nome de logon de um usuário em um site dentro de atual coleção site, o rotular exibe os sites da Web e grupos aos quais o usuário especificado pertence.

  9. Para executar o aplicativo depois de criá-lo em Visual Studio 2005, navegar para http:// NomeDoServidor /_layouts/ Web_Application_Name /Default.aspx.

Consulte também

Conceitos

Trabalhando com lista de objetos e coleções
Guia de Introdução Com programaticamente personalizar uma Web Site SharePoint em Visual Studio
A validação de segurança e fazer postagens para atualizar os dados
Elevação de privilégio