Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Importante
CONTEÚDO HERDADO Este artigo é retido apenas para referência histórica. Ele descreve APIs de autenticação do SharePoint preteridas para aplicativos Silverlight e Windows Phone.
Não há mais suporte para essas APIs e plataformas. Para obter diretrizes de desenvolvimento atuais, use:
- Biblioteca de Autenticação Microsoft (MSAL)
- API do Microsoft Graph
- APIs REST do SharePoint Online com OAuth 2.0
Obtenha uma visão geral do desenvolvimento com as APIs de autenticação do modelo de objeto cliente do SharePoint para Silverlight.
Contexto de cliente e de autenticação em um Windows Phone
O processo de autenticação de um usuário do SharePoint em um Windows Phone 7.5 é um pouco diferente do mesmo processo em um computador cliente. O código do cliente em um Windows Phone 7.5 primeiro cria um objeto da classe ou ODataAuthenticator classe, que foi adicionada ao SharePointClient modelo de Authenticator objeto do Microsoft Silverlight para Windows Phone. Em seguida, usa esse objeto como as credenciais do usuário.
Observação
Para obter mais informações sobre as APIs discutidas nesta seção, consulte Visão geral do modelo de objeto móvel do SharePoint. Para obter mais informações sobre o modelo de objeto cliente do SharePoint para Silverlight, consulte Modelo de objeto cliente gerenciado e Usando o modelo de objeto Silverlight.
Autenticação do usuário no modelo de objeto do cliente do SharePoint para o Silverlight
A seguir estão as etapas necessárias para obter o objeto de contexto de um cliente autenticado:
Obtenha um
ClientContextobjeto.Construa um novo
Authenticatorobjeto e inicialize suas propriedades.Observação
Um
Authenticatorobjeto pode ser usado com apenas umClientContextobjeto. Você não pode compartilhar umAuthenticatorobjeto entre váriosClientContextobjetos com URLs diferentes.A
Authenticatorclasse implementa aICredentialsinterface, portanto, você atribui o objeto àCredentialspropriedade doClientContextobjeto.
Em seguida, você pode adicionar o restante do código do modelo de objeto cliente e chamar ExecuteQueryAsync.
O código a seguir mostra essas etapas.
ClientContext context = new ClientContext(ListUrl);
// Create an instance of Authenticator object.
Authenticator at = new Authenticator();
// Replace <username> and <password> with valid values.
at.UserName = "<username>";
at.Password = "<password>";
at.AuthenticationMode = ClientAuthenticationMode.FormsAuthentication;
at.CookieCachingEnabled = true;
// Assign the instance of Authenticator object to the ClientContext.Credential property.
// ClientContext is the object that is central to the client object model for making
// calls to the server running SharePoint for fetching and updating data.
context.Credentials = at;
ListItemCollection items = context.Web.Lists.GetByTitle(ListName)
.GetItems(CamlQuery.CreateAllItemsQuery());
// Load the query and execute the request to fetch data.
context.Load(items);
context.ExecuteQueryAsync(
(object obj, ClientRequestSucceededEventArgs args) => {
// Success logic
},
(object obj, ClientRequestFailedEventArgs args) =>{
// Failure logic
});
Opcionalmente, você pode especificar um servidor UAG (Unified Access Gateway) definindo a Authenticator.UagServerUrl propriedade.
Se a URL do SharePoint tiver suporte à autenticação básica ou baseada em formulários, as ExecuteQueryAsync chamadas solicitarão informações de entrada ao usuário, conforme mostrado na Figura 1. Caso contrário, a chamada irá falhar. Ativar a autorização de autenticação básica ou baseada em formulários no site do SharePoint evitar um erro de autenticação.
Figura 1. Autenticação de cliente do SharePoint
O usuário digita o nome de usuário e senha e escolhe Logon, conforme mostrado na Figura 1. O usuário tem a opção escolher Lembrar-me lembrar seu nome de usuário e tem a opção escolher Lembrar minha senha para se lembrar da sua senha, conforme mostrado na Figura 1. Depois que o usuário nome ou a senha é lembrada, o usuário não precisa inserir credenciais na próxima vez em que o aplicativo é iniciado. Em ExecuteQueryAsync seguida, usa as credenciais conectadas para fazer solicitações da Web ao servidor que executa o SharePoint para buscar dados.
Autenticação do usuário no modelo de objeto do SharePoint OData
A seguir estão as etapas necessárias para obter um objeto de contexto do OData autenticado.
- Construa um novo
ODataAuthenticatorobjeto e inicialize suas propriedades. - Registre um manipulador para o evento AuthenticationCompleted.
- Chame o
ODataAuthenticator.Authenticatemétodo, o que gerará o evento AuthenticationCompleted . - Obtenha um objeto de contexto OData dentro do
OnAuthenticationCompletedmanipulador.
Em seguida, você pode adicionar o restante de suas chamadas OData no OnAuthenticationCompleted manipulador.
O código a seguir mostra essas etapas.
ODataAuthenticator oat = new ODataAuthenticator();
// Replace <username> and <password> with valid values.
oat.UserName = "<username>";
oat.Password = "<password>";
oat.AuthenticationMode = ClientAuthenticationMode.FormsAuthentication;
oat.AuthenticationCompleted +=
new EventHandler<SendingRequestEventArgs>(OnAuthenticationCompleted);
// The Authenticate method will raise the AuthenticationCompleted event.
oat.Authenticate("My_service_URL");
Seu código também deve implementar dois manipuladores de eventos, conforme descrito na seção a seguir.
Implementando os manipuladores de OnAuthenticationCompleted e OnSendingRequest e Obtendo o objeto ClientContext
Uma implementação do OnAuthenticationCompleted manipulador deve primeiro marcar se há erros na autenticação. Caso haja alguma, ele deve lidar com elas apropriadamente, como exibir uma mensagem de erro para o usuário e saia.
Se não houver erros, o manipulador deverá criar uma instância de um novo DataServiceContext objeto e, em seguida, registrar um manipulador para o evento SendingRequest . A partir desse ponto, seu código de chamada OData é programado no DataServiceContext objeto, assim como em um computador.
Veja a seguir um exemplo de uma implementação de um OnAuthenticationCompleted manipulador.
void OnAuthenticationCompleted(object sender, AuthenticationCompletedEventArgs e)
{
if (e.Error != null)
{
MessageBox.Show(error);
return;
}
ODataAuthenticator oat = sender as ODataAuthenticator;
// Construct an OData context object.
contextObj = new DataServiceContext(oat.ResolvedUrl);
// Register the SendingRequest event handler.
contextObj.SendingRequest +=
new EventHandler<SendingRequestEventArgs>(OnSendingRequest);
// Your data retrieval logic goes here.
// For example, if there is a GetData method:
// contextObj.GetData();
}
Tudo o que o OnSendingRequest manipulador precisa fazer é definir o contêiner de cookie do Request objeto para o contêiner de cookie do ODataAuthenticator objeto. Apresentamos um exemplo a seguir.
void OnSendingRequest(object sender, SendingRequestEventArgs e)
{
ODataAuthenticator oat = sender as ODataAuthenticator;
((HttpWebRequest)e.Request).CookieContainer = oat.CookieContainer;
}
Uso avançado
Você pode optar por construir um
Authenticatorobjeto com uma opção de nome de usuário/senha embutido em código rígido. O usuário do aplicativo não será solicitado a fornecer um nome de usuário e senha, e credenciais embutidas em código serão usadas para autenticar o usuário.public Authenticator(string userName, string password) public Authenticator(string userName, string password, string domain)O mesmo construtor pode ser usado para criar uma página de entrada personalizada. Você pode escrever uma página de entrada personalizada passando as credenciais de arquivos code-behind.
Authenticator at = new Authenticator(); at.AuthenticationMode = ClientAuthenticationMode.MicrosoftOnline;O tipo de autenticação pode ser definido. Por padrão, a autenticação básica é usada.
Se autenticar no SharePoint Online
Para autenticar em uma URL do SharePoint Online, defina a AuthenticationMode propriedade do Authenticator objeto como MicrosoftOnline modo. As etapas restantes no procedimento são os mesmos para uma URL do SharePoint local.
Observação
O nome de usuário e a senha não podem ser codificados para o SharePoint Online. O usuário será solicitado a fornecer credenciais de entrada.
Autenticação de Federação
FederationAuthURI é usada para passar a preferência do esquema de autenticação do ADFS em que o ADFS é configurado para usar vários manipuladores de autenticação.
FederationAuthURI especifica o tipo de autenticação exigido pela solicitação de autenticação quando, a autenticação do SharePoint Online é usada com Federação. Esse parâmetro pode substituir a prioridade estabelecida pela ordem na qual os manipuladores de autenticação são configurados. Para saber mais sobre o manipulador de autenticação, consulte Visão geral sobre o manipulador de autenticação.
Authenticator auth = new Authenticator("domain\\\\name", "xyz");
auth.FederationPassiveAuthUri = "urn:oasis:names:tc:SAML:2.0:ac:classes:Password";
// Replace <SiteUrl> with valid value
ClientContext ctx = new ClientContext("SiteUrl");
ctx.Credentials = auth;
ctx.ExecuteQueryAsync(
(object sender, ClientRequestSucceededEventArgs args) =>
{
/* successful callback code */
},
(object sender, ClientRequestFailedEventArgs args) =>
{
/* failure callback code */
});
O ADFS é uma propriedade opcional que entrará em vigor somente quando for usado com o Microsoft Office SharePoint Online. Usar a autenticação do ADFS com qualquer outro esquema de autenticação não terá nenhum efeito. Com o Microsoft Office SharePoint Online, se o ADFS não estiver definido, o esquema padrão será usado, ou seja, a preferência do servidor.
Cache por cookie
A Authenticator classe também inclui membros que você pode usar para habilitar e gerenciar o cache de cookies ou credenciais ou ambos. Para obter informações sobre esses membros da Authenticator classe e seus usos, consulte Visão geral do modelo de objeto móvel do SharePoint.