Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用户无法使用Asp.Net验证帐户_Asp.net_Email_Activation_Createuserwizard - Fatal编程技术网

用户无法使用Asp.Net验证帐户

用户无法使用Asp.Net验证帐户,asp.net,email,activation,createuserwizard,Asp.net,Email,Activation,Createuserwizard,我有一个简单的创建用户向导和自定义成员资格提供程序,它是从 现在,我通过使用向导创建新用户来学习本教程,并能够通过将“禁用创建属性用户”设置为“False”来发送电子邮件,这样每当用户收到激活链接时,他都需要单击该链接并验证其帐户 现在的问题是,当他创建新用户时,它工作正常,当他试图立即登录时,他收到一条消息,他需要首先激活链接才能登录 注册后,他收到一封电子邮件,当他点击链接时,我发现数据库中没有用户 正如您在下面看到的,该用户获得激活链接 当用户试图单击它时,他发现数据库中找不到他 如果

我有一个简单的创建用户向导和自定义成员资格提供程序,它是从

现在,我通过使用向导创建新用户来学习本教程,并能够通过将“禁用创建属性用户”设置为“False”来发送电子邮件,这样每当用户收到激活链接时,他都需要单击该链接并验证其帐户

现在的问题是,当他创建新用户时,它工作正常,当他试图立即登录时,他收到一条消息,他需要首先激活链接才能登录

注册后,他收到一封电子邮件,当他点击链接时,我发现数据库中没有用户

正如您在下面看到的,该用户获得激活链接

当用户试图单击它时,他发现数据库中找不到他

如果我检查管理工具,如果我检查用户是否可用,旁边没有勾号。

这是我的web.config:

    <?xml version="1.0"?>

<configuration>
  <connectionStrings>
    <add name="HDIConnectionString"
     connectionString="Data Source=.\SQLExpress;Integrated Security=True;User Instance=True;AttachDBFilename=|DataDirectory|HDIMembershipProvider.mdf"/>
  </connectionStrings>
  <system.web>
    <roleManager defaultProvider="CustomProvider">
      <providers>
        <add connectionStringName="HDIConnectionString" name="CustomProvider"
          type="System.Web.Security.SqlRoleProvider" />
      </providers>
    </roleManager>
    <membership defaultProvider="HDIMembershipProvider">
      <providers>
        <clear/>
        <add name="HDIMembershipProvider" type="HDI.AspNet.Membership.HDIMembershipProvider" connectionStringName="HDIConnectionString" enablePasswordRetrieval="true" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" passwordFormat="Clear"/>
      </providers>
    </membership>
    <machineKey validationKey="C50B3C89CB21F4F1422FF158A5B42D0E8DB8CB5CDA1742572A487D9401E3400267682B202B746511891C1BAF47F8D25C07F6C39A104696DB51F17C529AD3CABE" decryptionKey="8A9BE8FD67AF6979E7D20198CFEA50DD3D3799C77AF2B72F" validation="SHA1"/>
    <authentication mode="Forms">
      <forms name=".ASPXFORMSAUTH" loginUrl="Login.aspx" />
    </authentication>
    <compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
      <assemblies>
        <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
        <add assembly="System.Web.Extensions.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
        <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
      </assemblies>
    </compilation>
  </system.web>
  <appSettings>
    <add key="adminEmail" value="noreply@xyz.com"/>
  </appSettings>
  <system.net>
    <mailSettings>
      <smtp from="xyz@gmail.com">
        <network host="smtp.gmail.com" password="password" port="587" userName="xyz@gmail.com"/>
      </smtp>
    </mailSettings>
  </system.net>
</configuration>
以下是数据库屏幕截图:

您正在将guid类型传递给成员资格类的GetUser方法

更新我们现在已经对此进行了测试。传递GUID会调用正确的重载-
GetUser(objectprovideruserkey)
。所以这个答案是不相关的

如何确保在运行时将其推断为正确的重载

,因此,将guid作为对象传入是有意义的,这样您就可以显式地声明要调用的重载

框架可能正在对guid调用ToString(),这将调用查找用户名而不是提供程序密钥的重载

现在不是在电脑前,但应该是这样的

      Dim key as new object()
'put the guid in the object type
    key = Userid
    Dim user = Membership.GetUser(key)

您正在将guid类型传递给成员资格类的GetUser方法

更新我们现在已经对此进行了测试。传递GUID会调用正确的重载-
GetUser(objectprovideruserkey)
。所以这个答案是不相关的

如何确保在运行时将其推断为正确的重载

,因此,将guid作为对象传入是有意义的,这样您就可以显式地声明要调用的重载

框架可能正在对guid调用ToString(),这将调用查找用户名而不是提供程序密钥的重载

现在不是在电脑前,但应该是这样的

      Dim key as new object()
'put the guid in the object type
    key = Userid
    Dim user = Membership.GetUser(key)

@Tim和Baldy—我终于可以使用UserID了,但不知道GUID有什么问题,我用username尝试了一下,效果非常好


因此,如果对GUID有任何修改,请告诉我。

@Tim和Baldy-我终于可以使用UserID了。我不知道GUID有什么问题,我用username尝试了一下,效果非常好



因此,如果对GUID进行了任何修改,请告诉我。

verify.aspx中的代码如何-请发布它好吗?@Baldy-I已经更新了它。很抱歉:)数据库中是否有用户使用URL参数的GUID?@Kiran:Does
Membership.GetUser(新GUID(“7041053a-792f-47e0-bf2e-92febda23f09”))
总是返回
null
,我的意思是在任何上下文中从调试器返回?它适用于其他(批准的)GUID吗?@Tim它总是返回空值。verify.aspx中的代码如何?你能发布它吗?@Baldy-I已经更新了它。很抱歉:)数据库中是否有用户使用URL参数的GUID?@Kiran:Does
Membership.GetUser(新GUID(“7041053a-792f-47e0-bf2e-92febda23f09”))
总是返回
null
,我的意思是在任何上下文中从调试器返回?它适用于其他(批准的)GUID吗?@Tim它总是返回空值。@Baldy那么我该如何更改它,您可以为此发布一些代码吗?@Baldy:他正在调用接受对象的重载,因为他已经传递了一个GUID。如果它是字符串或布尔值,则会调用GetUser的其他重载版本you@Baldy:除了Kiran的代码,你的代码肯定不起作用。您正在将字符串传递给GetUser。但是,尽管有GUID,重载还是使用用户名。我无法测试它,因为我不在电脑上。但是,他需要确保调用了正确的重载。已更新代码以将guid传递给对象。他需要尝试一下,把它从潜在的原因列表中删除。你说“超负荷”,但有两个单一的参数overloads@Baldy-那么我该如何更改它?你能为它发布一些代码吗?@Baldy:他正在调用接受对象的重载,因为他已经传递了一个GUID。如果它是字符串或布尔值,则会调用GetUser的其他重载版本you@Baldy:除了Kiran的代码,你的代码肯定不起作用。您正在将字符串传递给GetUser。但是,尽管有GUID,重载还是使用用户名。我无法测试它,因为我不在电脑上。但是,他需要确保调用了正确的重载。已更新代码以将guid传递给对象。他需要尝试一下,把它从潜在的原因列表中删除。你说“那个重载”,但是有两个单参数重载
      Dim key as new object()
'put the guid in the object type
    key = Userid
    Dim user = Membership.GetUser(key)