Compartilhar via


FormsCredentials De classe

Representa um objeto que contém as credenciais usados para conectar a pesquisa federado locais que são configurados para usar autenticação de formulários.

Espaço para nome Microsoft.Office.Server.Search.Federation
Conjunto de Módulos (Assembly) Microsoft.Office.Server.Search (em microsoft.office.server.search.dll)

A sintaxe

Public Class FormsCredentials
    Inherits CookieCredentials

Dim instance As FormsCredentials
public class FormsCredentials : CookieCredentials

Comentários

Há duas classes que você pode usar para representar dados de autenticação cookie-Based para pesquisa federado locais:

  • FormsAuthCredentials
    Use esta classe quando você programaticamente Configurar locais federados.

  • FormsCredentials
    Use essa classe no personalizado federado resulta Web Parts, quando especificar credenciais para federado locais que estão configurados para por usuário autenticação de formulários.

Exemplo

O seguinte exemplo de código demonstra como definir credenciais de usuário em fonte de dados o Federated Results Web Part para um personalizado Federated os resultados da Web Part.Você deve definir usuário credenciais dessa maneira para federado locais que são configurados para usar qualquer um do por-usuário autenticação tipos, com a exceção de Kerberos.Para obter mais informações, consulte Criar um personalizado Federados Web Part de pesquisa com um credenciais interface do usuário.

Dica

Este exemplo de código é uma versão simplificada de um personalizado Federated os resultados da Web Part; Ele não inclui o código completo necessários para prompt o usuário para suas credenciais.Para um mais completo exemplo que demonstra como fazer isso, consulte Personalizado Federados de exemplo de pesquisa da Web Part.

using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Net;
using Microsoft.Office.Server.Search.WebControls;
using Microsoft.Office.Server.Search.Administration;
using Microsoft.Office.Server.Search.Federation;
using System.Security;
using System.Web.UI.HtmlControls;
using Microsoft.SharePoint;
using System.Xml.Serialization;
using System.Xml.XPath;

namespace CustomFedSearchSample
{
    [XmlRoot(Namespace = "CustomFederatedResultsWebPart")]
    public class SampleFederatedResultsWebPart : FederatedResultsWebPart, IPostBackEventHandler
    {
        protected override void OnLoad(EventArgs e)
        {
            try
            {
                this.ShowMessages = false;
                base.OnLoad(e);
            }
            catch (Exception ex)
            {
                string x = ex.Message.ToString();
            }
        }

        protected override void ConfigureDataSourceProperties()
        {
            ICredentials userCredentials = null;
            base.ConfigureDataSourceProperties();
            FederatedResultsDatasource fedResultsDS = this.DataSource as FederatedResultsDatasource;
            LocationConfiguration locationConfig = null;

            if (fedResultsDS.Location != null)
            {
                string locationName = fedResultsDS.Location;
                LocationConfigurationCollection locations = SearchContext.Current.LocationConfigurations;
                locations.TryGetLocationConfigurationByInternalName(locationName, out locationConfig);

                switch (locationConfig.AuthInfo.AuthenticationType)
                {
                    case FederationAuthType.PerUserFormsAuthentication:
                        //Replace FormsLogonURL with the URL to the Forms logon page.
                        string logonURL = "http://FormsLogonURL";
                        //Replace FormMethod with post or get.
                        string logonMethod = FormMethod";
                        Dictionary<string, string> logonInput = new Dictionary<string, string>();
                        /*
                         *Code to compute logon input names and values for forms
                         *logon page, and add them to the Dictionary object goes here.
                         */ 
                        Dictionary<string, SecureString> logonSecureInput = new Dictionary<string, SecureString>();
                        /*
                         *Code to compute logon input names and System.Security.SecureString values
                         *for forms logon page and add them to the Dictionary object goes here.
                         */ 
                        CookieCollection formsLogonCookies = new CookieCollection();
                        userCredentials = new FormsCredentials(logonURL, logonURL, logonInput, logonSecureInput, logonMethod, formsLogonCookies);
                        break;

                    case FederationAuthType.PerUserCookie:
                        CookieCollection logonCookies = new CookieCollection();
                        /*
                         *Code to compute logon cookies and add them
                         *to the cookie collection goes here.
                         */
                        userCredentials = new CookieCredentials(logonCookies);
                        break;

                    case FederationAuthType.PerUserNTLM:
                    case FederationAuthType.PerUserBasicAuth:
                    case FederationAuthType.PerUserDigest:
                        /*
                         *Replace username< > with the Windows account.
                         *Replace domain with the Windows domain name.
                         *Replace password with the password for the Windows account.
                         */
                        string user = username";
                        string domain = "domain";
                        string password = "password";
                        userCredentials = new NetworkCredential(user, password, domain);
                        break;

                    default:
                        break;
                }
                if (fedResultsDS.UserCredentials.ContainsKey(locationName))
                {
                    fedResultsDS.UserCredentials.Remove(locationName);
                }

                if (userCredentials != null)
                {
                    fedResultsDS.UserCredentials.Add(locationName, userCredentials);
                }
            }
        }

        protected override XPathNavigator GetXPathNavigator(string viewPath)
        {
            XPathNavigator federatedResults;
            federatedResults = base.GetXPathNavigator(viewPath);

            if (federatedResults == null)
            {
                ShowLogonControls();
            }
            else
            {
                ShowLogoutControls();
            }

            return federatedResults;
        }

        private void ShowLogonControls()
        {
            //Code to display logon controls goes here.
        }

        private void ShowLogoutControls()
        {
        //Code to display logout controls
        }
    }
}

Hierarquia de herança

System.Object
   System.Net.NetworkCredential
     Microsoft.Office.Server.Search.Federation.CookieCredentials
      Microsoft.Office.Server.Search.Federation.FormsCredentials

Segmento de segurança

Qualquer público estático ( compartilhadas Na Visual Basic) os membros desse tipo são segmento seguro. Os membros de instância não são garantia ser segmento seguro.

Consulte também

Referência

FormsCredentials Membros
Microsoft.Office.Server.Search.Federation De espaço para nome
UserCredentials

Outros recursos

Personalizado Federados de exemplo de pesquisa da Web Part
Visão geral sobre de pesquisa federado
Criar um personalizado Federados Web Part de pesquisa com um credenciais interface do usuário