Asp.net 对于设置自定义成员身份,此代码在web.config中是否正确

Asp.net 对于设置自定义成员身份,此代码在web.config中是否正确,asp.net,web-applications,web-config,membership,Asp.net,Web Applications,Web Config,Membership,我想使用自定义成员资格和自定义角色提供程序。我有以下课程: public class CustomRoleProvider : RoleProvider { //override methods } public class CustomMembershipProvider : MembershipProvider { //override methods } 我要设置web.config,这个代码正确吗 <membership defaultProvider="CustomMembe

我想使用自定义成员资格和自定义角色提供程序。我有以下课程:

public class CustomRoleProvider : RoleProvider
{
//override methods
}

public class CustomMembershipProvider : MembershipProvider
{
//override methods
}
我要设置web.config,这个代码正确吗

<membership defaultProvider="CustomMembershipProvider">
  <providers>
    <clear />
    <add name="CustomMembershipProvider" type="Login1.Code.CustomMembershipProvider, Login1, Version=1.0.0.0, Culture=neutral" connectionStringName="LoginDB1Entities" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" />
  </providers>
</membership>

<roleManager enabled="true" defaultProvider="CustomRoleProvider">
  <providers>
    <clear />
    <add name="CustomRoleProvider" type="Login1.Code.CustomRoleProvider" connectionStringName="LoginDB1Entities" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" writeExceptionsToEventLog="false" />
  </providers>
</roleManager>

因为当我转到ASP.NET配置和安全选项卡时,会收到以下消息:

所选数据存储存在问题。这可能是由于服务器名称或凭据无效或权限不足造成的。这也可能是由于未启用角色管理器功能造成的。单击下面的按钮可重定向到可以选择新数据存储的页面。
以下消息可能有助于诊断问题:方法或操作未实现

这里的问题似乎源于您的
connectionStringName
属性

确保在Web.config的
部分中定义/添加连接字符串

<connectionStrings> 
<add name="LoginDB1Entities" ... />
</connectionStrings>

此外,如果您已经如上所述添加了,请确保使用了正确的设置


首先检查数据库的确切位置?找出应用程序使用的数据库是SQL Server的哪个实例。修改连接字符串以指向该实例。

此处的问题似乎源于您的
connectionStringName
属性

确保在Web.config的
部分中定义/添加连接字符串

<connectionStrings> 
<add name="LoginDB1Entities" ... />
</connectionStrings>

此外,如果您已经如上所述添加了,请确保使用了正确的设置

首先检查数据库的确切位置?找出应用程序使用的数据库是SQL Server的哪个实例。修改连接字符串以指向该实例

未实现该方法或操作

如果在没有任何参数的情况下抛出
NotImplementedException
,则会得到此消息

最明显的原因是您的一个自定义提供程序没有实现预期的方法之一。如果你能得到一个堆栈跟踪,你会看到哪一个

更新回应评论:


我的自定义成员身份正在网站中工作

成员资格和角色提供程序包含用于两个目的的方法:

  • 运行时身份验证(MembershipProvider)和授权(RoleProvider)所需的方法。例如,在运行时RoleProvider仅使用方法
    IsUserInRole
    GetRolesForUser

  • 管理用户(MembershipProvider)和角色/角色成员资格(RoleProvider)所需的方法。如果要使用ASP.NET配置和安全选项卡管理提供商的数据存储,则需要这些方法

创建一个只提供运行时功能的提供程序(所谓的“只读”提供程序)是完全有效的,在这种情况下,您必须提供一些其他外部机制来管理提供程序的数据存储。例如,是一个只读提供程序。但是,如果执行此操作,您将无法使用ASP.NET配置和安全选项卡管理提供程序存储

您似乎未能实现一个或多个管理方法,而是抛出了
NotImplementedException

顺便说一句,
NotImplementedException
不是只读提供程序中不受支持的方法引发的最佳异常。它通常仅用于指示尚未在开发中的版本中实现的方法

如果您不打算实现该方法,最好抛出
NotSupportedException
——或者在提供程序的情况下,可能是一个

未实现该方法或操作

如果在没有任何参数的情况下抛出
NotImplementedException
,则会得到此消息

最明显的原因是您的一个自定义提供程序没有实现预期的方法之一。如果你能得到一个堆栈跟踪,你会看到哪一个

更新回应评论:


我的自定义成员身份正在网站中工作

成员资格和角色提供程序包含用于两个目的的方法:

  • 运行时身份验证(MembershipProvider)和授权(RoleProvider)所需的方法。例如,在运行时RoleProvider仅使用方法
    IsUserInRole
    GetRolesForUser

  • 管理用户(MembershipProvider)和角色/角色成员资格(RoleProvider)所需的方法。如果要使用ASP.NET配置和安全选项卡管理提供商的数据存储,则需要这些方法

创建一个只提供运行时功能的提供程序(所谓的“只读”提供程序)是完全有效的,在这种情况下,您必须提供一些其他外部机制来管理提供程序的数据存储。例如,是一个只读提供程序。但是,如果执行此操作,您将无法使用ASP.NET配置和安全选项卡管理提供程序存储

您似乎未能实现一个或多个管理方法,而是抛出了
NotImplementedException

顺便说一句,
NotImplementedException
不是只读提供程序中不受支持的方法引发的最佳异常。它通常仅用于指示尚未在开发中的版本中实现的方法


如果您不打算实现该方法,最好抛出
NotSupportedException
——或者在提供程序的情况下,抛出一个。

是。我在web.config中设置了此连接字符串,您确定在连接字符串中使用了正确的设置,如:数据源、用户名、密码等吗??另外,重新编译、重建应用程序,并在我的自定义成员身份在站点中工作后再次运行。但是当我转到ASP.NET配置和安全选项卡时,得到messageYes。我设定