asp.net - 如何部署 ASP.net 自定义 MembershipProvider?

标签 asp.net asp.net-membership membership-provider

我编写了一个自定义 MembershipProvider,它使用自定义数据库架构来存储成员,但我在弄清楚如何部署该提供程序时遇到了困难。我的目标服务器正在运行 IIS7,并且我能够导航到用于添加 .NET 用户提供程序的对话框,但它不允许我选择包含提供程序和类的程序集,而是提供了一个带有几个 MS 书面提供商。

我是否需要将程序集放在特定位置以便 IIS 发现我的 MembershipProvider 类?如果是这样,.dll 需要去哪里?否则,如何告诉 ASP.Net 使用我的 MembershipProvider?我见过的每个示例都只是引用完全限定的类名,但没有提及需要如何部署该文件。

最佳答案

如果您查看应用程序的 web.config 文件,您应该有一个名为 system.web 的部分。其中有一个包含提供者列表的成员资格元素。您应该能够添加您的提供商并在那里设置默认提供商。一旦您的成员(member)提供程序以这种方式注册,您应该也能够从 IIS 选择它作为该应用程序的默认提供程序。

<system.web>
    ...
    <membership defaultProvider="MyMembershipProvider" 
                    userIsOnlineTimeWindow="15">
        <providers>
            <add name="MyMembershipProvider"
                             type="Common.Auth.MyMembershipProvider, Common" 
                             connectionStringName="MyAuthDBConnectionString" 
                             enablePasswordRetrieval="true" 
                             enablePasswordReset="true" 
                             requiresQuestionAndAnswer="true" 
                             writeExceptionsToEventLog="false" />
        </providers>
    </membership>
    ...
</system.web>

providers 元素允许您注册多个提供商以供选择。另一个功能是您可以清除在计算机上的其他配置文件中注册的成员资格提供程序。这可以减少以后配置应用程序时出错的可能性。为此,请在列表中的第一个成员资格提供者( 元素)之前添加 元素。

<system.web>
    ...
    <membership defaultProvider="MembershipProvider1">
        <providers>
            <clear />
            <add name="MembershipProvider1" ... />
            <add name="MembershipProvider2" ... />
        </providers>
    </membership>
    ...
</system.web>

如果您想仅使用 IIS 管理器向多个 Web 应用程序注册同一提供程序,则需要将程序集放入 GAC 中,并将提供程序添加到其中一个计算机配置文件中。部署单个应用程序时,这通常会增加工作量但收效甚微。

关于asp.net - 如何部署 ASP.net 自定义 MembershipProvider?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/422631/

相关文章:

asp.net - Moq Parent 没有默认构造函数。默认构造函数必须显式定义

membership-provider - 什么原因可能导致 WebSecurity.ChangePassword() 失败?

mysql - 通过 visual studios 2012 MySql 的成员(member)资格和滚动

c# - 页面无法显示,因为服务器发生内部服务器错误

asp.net - wcf服务和web服务有什么区别?

Asp.net mvc用户管理

asp.net-mvc - 使用 NHibernate 时如何处理成员资格/角色?

c# - 如何从 ASP.Net OpenID Connect OWIN 组件设置声明?

asp.net - 是否有人编写或使用过与 Facebook Connect 集成的 Asp.NET 成员(member)提供程序?