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 LEGADO Este artigo é mantido apenas para referência histórica. Descreve as APIs de autenticação do SharePoint preteridas para o Silverlight e Windows Phone aplicações.
Estas APIs e plataformas já não são suportadas. Para obter as orientações de desenvolvimento atuais, utilize:
- Biblioteca de Autenticação Microsoft (MSAL)
- API do Microsoft Graph
- APIs REST do SharePoint Online com o OAuth 2.0
Obtenha uma descrição geral do desenvolvimento com as APIs de autenticação do modelo de objeto de cliente do SharePoint para o 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 de cliente num Windows Phone 7.5 cria primeiro um objeto da Authenticator classe ou ODataAuthenticator classe, que foram adicionados ao modelo de objetos do SharePointClient 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 que são abordadas nesta secção, veja Descrição geral do modelo de objetos móveis do SharePoint. Para obter mais informações sobre o modelo de objeto de cliente do SharePoint para Silverlight, veja Modelo de Objeto de Cliente Gerido e Utilizar o Modelo de Objetos do 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:
Obter um
ClientContextobjeto.Construa um novo
Authenticatorobjeto e inicialize as respetivas propriedades.Observação
Um
Authenticatorobjeto só pode ser utilizado com umClientContextobjeto. Não pode partilhar umAuthenticatorobjeto entre váriosClientContextobjetos com URLs diferentes.A
Authenticatorclasse implementa aICredentialsinterface, pelo que atribui o objeto àCredentialspropriedade doClientContextobjeto.
Em seguida, pode adicionar o resto do código do modelo de objeto de 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, pode especificar um servidor UAG (Unified Access Gateway) ao definir a Authenticator.UagServerUrl propriedade .
Se o URL do SharePoint tiver suporte de autenticação básica ou baseada em formulários, as ExecuteQueryAsync chamadas solicitam ao utilizador informações de início de sessão, 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, utiliza as credenciais com sessão iniciada para fazer pedidos Web ao servidor que executa o SharePoint para obter 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 as respetivas propriedades. - Registre um manipulador para o evento AuthenticationCompleted.
- Chame o
ODataAuthenticator.Authenticatemétodo , que irá gerar o evento AuthenticationCompleted . - Obtenha um objeto de contexto OData dentro do
OnAuthenticationCompletedprocessador.
Em seguida, pode adicionar o resto das chamadas OData no OnAuthenticationCompleted processador.
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 processador deve primeiro marcar para quaisquer 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 existirem erros, o processador deve criar uma instância de um novo DataServiceContext objeto e, em seguida, registar um processador para o evento SendingRequest . A partir daí, o código de chamada OData é programado para o DataServiceContext objeto tal como está num computador.
Segue-se um exemplo de uma implementação de um OnAuthenticationCompleted processador.
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 processador precisa de fazer é definir o contentor de cookies do Request objeto para o contentor de cookies 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
Pode optar por construir um
Authenticatorobjeto com uma opção de nome de utilizador/palavra-passe hard-coded. Não será pedido ao utilizador da aplicação um nome de utilizador e palavra-passe e serão utilizadas credenciais hard-coded para autenticar o utilizador.public Authenticator(string userName, string password) public Authenticator(string userName, string password, string domain)O mesmo construtor pode ser utilizado para criar uma página de início de sessão personalizada. Pode escrever uma página de início de sessão personalizada ao transmitir as credenciais a partir de ficheiros protegidos por código.
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 se autenticar num 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 utilizador e a palavra-passe não podem ser codificados para o SharePoint Online. Ser-lhe-ão pedidas credenciais de início de sessão ao utilizador.
Autenticação de Federação
FederationAuthURI A propriedade é utilizada para transmitir a preferência do esquema de autenticação do ADFS em que o ADFS está configurado para utilizar vários processadores de autenticação.
FederationAuthURI especifica o tipo de autenticação exigido pelo pedido de Autenticação quando a autenticação do SharePoint Online é utilizada com a 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 só será eficaz quando for utilizado com Microsoft Office SharePoint Online. A utilização da autenticação do ADFS com qualquer outro esquema de autenticação não terá qualquer efeito. Com Microsoft Office SharePoint Online, se o ADFS não estiver definido, o esquema predefinido será utilizado, ou seja, a preferência do servidor.
Cache por cookie
A Authenticator classe também inclui membros que pode utilizar para ativar e gerir a colocação em cache de cookies ou credenciais ou ambos. Para obter informações sobre estes membros da classe e as Authenticator respetivas utilizações, veja Descrição geral do modelo de objetos móveis do SharePoint.