• [转]使用客户端应用程序服务来实现用户登录


    原文链接:https://msdn.microsoft.com/zh-cn/library/bb384313(v=vs.100).aspx

    如何:使用客户端应用程序服务来实现用户登录

    Visual Studio 2010
     
    其他版本
     

    通过现有的 Microsoft Ajax 配置文件服务可以使用客户端应用程序服务来验证用户。 有关如何设置 Microsoft Ajax 配置文件服务的信息,请参见通过 Microsoft Ajax 使用 Forms 身份验证

    以下过程描述了在将应用程序配置为使用一个客户端身份验证服务提供程序时如何通过身份验证服务验证用户。 有关更多信息,请参见如何:配置客户端应用程序服务

    通常通过 static Membership.ValidateUser 方法执行所有验证。 此方法通过配置的身份验证提供程序管理与身份验证服务的交互。 有关更多信息,请参见客户端应用程序服务概述

    Forms 身份验证过程要求访问正在运行的 Microsoft Ajax 身份验证服务。 有关在客户端应用程序服务功能的端到端测试的指南,请参见演练:使用客户端应用程序服务

    使用成员资格凭据提供程序对用户进行 Forms 身份验证

    1. 实现 IClientFormsAuthenticationCredentialsProvider 接口。 下面的代码示例演示从System.Windows.Forms.Form 派生的登录对话框类的IClientFormsAuthenticationCredentialsProvider.GetCredentials 实现。 此对话框具有用于输入用户名和密码的文本框和“记住我”复选框。 当客户端身份验证提供程序调用 GetCredentials 方法时,将显示该窗体。 当用户在登录对话框中填写信息并单击“确认”时,将在一个新的 ClientFormsAuthenticationCredentials 对象中返回指定值。

       
      public ClientFormsAuthenticationCredentials GetCredentials()
      {
          if (this.ShowDialog() == DialogResult.OK)
          {
              return new ClientFormsAuthenticationCredentials(
                  usernameTextBox.Text, passwordTextBox.Text,
                  rememberMeCheckBox.Checked);
          }
          else
          {
              return null;
          }
      }
      
      
      
    2. 调用 static Membership.ValidateUser 方法,并传入空字符串作为参数值。 当指定空字符串时,此方法将在内部调用为应用程序配置的凭据提供程序的 GetCredentials 方法。 下面的代码示例调用此方法,以限制对整个 Windows 窗体应用程序的访问。 可以将此代码添加到 Form.Load 处理程序。

       
      if (!System.Web.Security.Membership.ValidateUser(
          String.Empty, String.Empty))
      {
          MessageBox.Show("Unable to authenticate.", "Not logged in",
              MessageBoxButtons.OK, MessageBoxIcon.Error);
          Application.Exit();
      }
      
      
      

    在不使用成员资格凭据提供程序的情况下对用户进行 Forms 身份验证

    • 调用 static Membership.ValidateUser 方法,并传入从用户获得的用户名和密码值。

       
      if (!System.Web.Security.Membership.ValidateUser(
          usernameTextBox.Text, passwordTextBox.Text))
      {
          MessageBox.Show("Unable to authenticate.", "Not logged in",
              MessageBoxButtons.OK, MessageBoxIcon.Error);
          Application.Exit();
      }
      
      
      

    使用 Windows 身份验证验证用户

    • 调用 static Membership.ValidateUser 方法,并传递空字符串作为参数。 此方法调用将始终返回 true,并将 Cookie 添加到包含 Windows 标识的用户的 Cookie 缓存中。

       
      System.Web.Security.Membership.ValidateUser(
          String.Empty, String.Empty);
      
      
      

    本主题中的代码示例演示在 Windows 客户端应用程序中进行身份验证的最简单的用法。 但是,当对客户端应用程序服务和 Forms 身份验证调用 static Membership.ValidateUser 方法时,代码可能引发 WebException。 这表示身份验证服务不可用。 有关如何处理此异常的示例,请参见演练:使用客户端应用程序服务

    Visual Studio 2010
     
    其他版本
     

    通过现有的 Microsoft Ajax 配置文件服务可以使用客户端应用程序服务来验证用户。 有关如何设置 Microsoft Ajax 配置文件服务的信息,请参见通过 Microsoft Ajax 使用 Forms 身份验证

    以下过程描述了在将应用程序配置为使用一个客户端身份验证服务提供程序时如何通过身份验证服务验证用户。 有关更多信息,请参见如何:配置客户端应用程序服务

    通常通过 static Membership.ValidateUser 方法执行所有验证。 此方法通过配置的身份验证提供程序管理与身份验证服务的交互。 有关更多信息,请参见客户端应用程序服务概述

    Forms 身份验证过程要求访问正在运行的 Microsoft Ajax 身份验证服务。 有关在客户端应用程序服务功能的端到端测试的指南,请参见演练:使用客户端应用程序服务

    使用成员资格凭据提供程序对用户进行 Forms 身份验证

    1. 实现 IClientFormsAuthenticationCredentialsProvider 接口。 下面的代码示例演示从System.Windows.Forms.Form 派生的登录对话框类的IClientFormsAuthenticationCredentialsProvider.GetCredentials 实现。 此对话框具有用于输入用户名和密码的文本框和“记住我”复选框。 当客户端身份验证提供程序调用 GetCredentials 方法时,将显示该窗体。 当用户在登录对话框中填写信息并单击“确认”时,将在一个新的 ClientFormsAuthenticationCredentials 对象中返回指定值。

       
      public ClientFormsAuthenticationCredentials GetCredentials()
      {
          if (this.ShowDialog() == DialogResult.OK)
          {
              return new ClientFormsAuthenticationCredentials(
                  usernameTextBox.Text, passwordTextBox.Text,
                  rememberMeCheckBox.Checked);
          }
          else
          {
              return null;
          }
      }
      
      
      
    2. 调用 static Membership.ValidateUser 方法,并传入空字符串作为参数值。 当指定空字符串时,此方法将在内部调用为应用程序配置的凭据提供程序的 GetCredentials 方法。 下面的代码示例调用此方法,以限制对整个 Windows 窗体应用程序的访问。 可以将此代码添加到 Form.Load 处理程序。

       
      if (!System.Web.Security.Membership.ValidateUser(
          String.Empty, String.Empty))
      {
          MessageBox.Show("Unable to authenticate.", "Not logged in",
              MessageBoxButtons.OK, MessageBoxIcon.Error);
          Application.Exit();
      }
      
      
      

    在不使用成员资格凭据提供程序的情况下对用户进行 Forms 身份验证

    • 调用 static Membership.ValidateUser 方法,并传入从用户获得的用户名和密码值。

       
      if (!System.Web.Security.Membership.ValidateUser(
          usernameTextBox.Text, passwordTextBox.Text))
      {
          MessageBox.Show("Unable to authenticate.", "Not logged in",
              MessageBoxButtons.OK, MessageBoxIcon.Error);
          Application.Exit();
      }
      
      
      

    使用 Windows 身份验证验证用户

    • 调用 static Membership.ValidateUser 方法,并传递空字符串作为参数。 此方法调用将始终返回 true,并将 Cookie 添加到包含 Windows 标识的用户的 Cookie 缓存中。

       
      System.Web.Security.Membership.ValidateUser(
          String.Empty, String.Empty);
      
      
      

    本主题中的代码示例演示在 Windows 客户端应用程序中进行身份验证的最简单的用法。 但是,当对客户端应用程序服务和 Forms 身份验证调用 static Membership.ValidateUser 方法时,代码可能引发 WebException。 这表示身份验证服务不可用。 有关如何处理此异常的示例,请参见演练:使用客户端应用程序服务

  • 相关阅读:
    web.config中的customErrors标记的用法
    算法系列15天速成[索引]
    log4net的简单使用
    Cookie帮助类
    ASPxTreeList及ASPxGridView使用
    javascript获取页面中的位置
    如何部署windows服务?
    基于T4模板引擎生成静态网站(CMS)
    SqlServer实现递归查询
    安卓(AndRoid)开发环境搭建之HelloWord
  • 原文地址:https://www.cnblogs.com/z5337/p/5362201.html
Copyright © 2020-2023  润新知