1

我有一个网站,其中包含使用自定义 HDI 会员提供程序的登录和注册表格,用户可以在其中登录或注册新帐户。

现在我有一个桌面软件,并试图有两种登录和注册表格,我的用户可以登录或注册以方便用户,而不是通过访问网站让他们在线注册。

所以,我有这些要知道才能走得更远。

1) 我可以像在我的 Web 应用程序中那样使用 HDI 会员提供程序吗?如果是这样,我该怎么做?

正如我之前所做的那样,我遇到了很多问题,但在这里仍然没有得到澄清

2)如果否,我如何使用才能使用相同的 HDI 会员资格。

最后,我需要为我的桌面软件和我的 Web 应用程序使用相同的数据库,并提供所有可能性(即,我需要验证我的成员资格类的每个参数)。

我可以注册用户,但它没有使用会员资格,我无法知道为什么它没有从 app.config 文件中获取会员资格提供程序。

我再次提供我的用户数据库结构:

在此处输入图像描述

4

1 回答 1

2

您可以相当轻松地在 Windows 窗体应用程序中使用标准成员资格提供程序。

但是,如果没有有关 HDI 会员提供者来源的更多详细信息,将很难提供准确的说明。

您可以尝试以下说明,看看它们是否适合您:

1) 将 System.Web 的引用添加到您的 Windows 窗体应用程序中。

2)Imports System.Web.Security在要使用提供程序的代码文件中添加一个。

3)Membership像在网络中一样调用方法,即Memebership.ValidateUser(user, password).

4) 将一个system.web块添加到您的 Windows 窗体 app.config 文件(在该configuration部分内),然后将该membership块从您的 web.config 文件复制到此块。例如:

<configuration>
  <system.web>
    <membership defaultProvider="HDIMembershipProvider">
      <providers>
        <clear/>
        <add name="HDIMembershipProvider" type="frmStartup.HDIMembershipProvider, frmStartup"/>
      </providers>
    </membership>
  </system.web>
</configuration>

5) 您可能需要添加对包含 HDI 成员资格提供程序的程序集、项目或代码的引用。

更新

您的 app.config 有两个问题:

1) appSettings 部分必须完全如下(您当前的 appSettings 使用“Application Name”作为键,而您的代码使用“ApplicationName”):

<appSettings>
  <add key="ApplicationName" value="/gAnnotation" />
</appSettings>

2) 成员资格部分必须完全如下(类型必须指定完全限定的类型名称,后跟该类型所在的程序集的名称,并且 defaultProvider 必须与添加的提供程序中的名称匹配):

<membership defaultProvider="HDIMembershipProvider">
  <providers>
    <clear/>
    <add name="HDIMembershipProvider" type="frmStartup.HDIMembershipProvider, frmStartup"/>
  </providers>
</membership>

如果您完全如上所示修改您的 app.config,您的应用程序将正常工作(我已经对其进行了测试并验证了创建用户和登录工作)。

于 2012-01-01T17:18:15.333 回答