2010-06-30 96 views
3

我有一个(很难与客户合作)的客户在我们的网站上创建了一个帐户,但是由于他尚未点击帐户激活链接,他无法登录。由于某种原因,他不想点击它(他认为它的病毒)在asp.net中手动激活用户帐户

无论如何,我想手动设置帐户激活通过数据库..我该怎么做? 谢谢!

(我的意思是,哪些领域需要改变什么值?)

+2

(他认为它的病毒) - 大声笑! – Krunal 2010-06-30 09:21:03

回答

1

你能不能临时指定自己的地址到帐户,然后重新发送激活网址是什么?也许他可以转发你的邮件,你可以点击链接。认为这比“侵入”会员提供商的方式容易。

还要求你的客户哑巴不是处理你的客户一个很好的办法;)

+0

看起来不错,但是,我们的网站不提供重新发送激活链接的方法! – iamserious 2010-06-30 09:23:26

+0

让他转发你的邮件:)否则,尝试找出激活URL是如何创建的。也许URL(或其部分)存储在数据库中,您可以“重新创建”他的URL。 – Gertjan 2010-06-30 09:26:04

+0

我们正在使用aspnet成员资格功能..所以激活链接将从GUID创建,因此重新创建它的几率几乎非常非常罕见。 – iamserious 2010-06-30 09:30:17

4

我做了周围的ASPNET成员表中的一些fiddeling,发现如何手动激活账号!

update aspnetdb.dbo.aspnet_Membership set IsApproved = 1 where UserId = (select UserId From aspnetdb.dbo.aspnet_Users where UserName = @Username) 

userid是可笑的长,所以我发现它更容易从用户名表中提取它的用户名。

4

在您的MembershipProvider上调用这两个方法。

 Membership.GetUser().UnlockUser(); 
     Membership.GetUser().IsApproved = true; 
+0

我想在数据库级别执行此操作,可以在单击链接并且用户登录页面后调用这些方法..但是我的这个用户拒绝单击链接,因此我必须操作数据库中的列,但是谢谢:) – iamserious 2010-06-30 09:50:58

+1

你也可以通过传递用户名来调用它。无需直接触摸数据库。 'Membership.GetUser(“username”)。UnlockUser();' – 2010-06-30 10:01:31

+0

hmm但为此我仍然需要在一些临时页面中编写代码并编译整个项目,并将dll和必要的页面转移到专用服务器并运行它,然后恢复它的权利?很多工作只是一次的事情!但可能是如果我有更多像这样的客户,我将在未来将其作为“仅管理员”的东西进行整合。感谢您的创意! – iamserious 2010-06-30 10:50:56

2

最近我有同样的问题,我发现,当你正在做Membership.CreateUser叫你可以把它的用户作为真正的自动创建通过插入这样的:

Membership.CreateUser(userName, Password, eMail, passwordQuestion, passwordAnswer, isApproved) 

isApproved是一个布尔值,当您调用创建用户时可以设置为true。