Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.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
C# 如何限制ASP.NET入门网站的注册?_C#_Asp.net_Authentication - Fatal编程技术网

C# 如何限制ASP.NET入门网站的注册?

C# 如何限制ASP.NET入门网站的注册?,c#,asp.net,authentication,C#,Asp.net,Authentication,ASP.NET新手问题。我从ASP.NET的入门网站开始,该网站带有一组内置的注册、身份验证页面和成员数据库 现在我的问题是,我如何限制注册到我的网站?此网站用于患者实践,只有患者需要访问 我读过关于角色的文章,但是分配角色意味着用户已经注册了。我不希望在DB中创建的用户没有通过电子邮件或管理员在注册前输入的其他凭据进行授权 请让我知道对初学者网站模板进行此修改的最佳方法 提前感谢。如评论中所述,您可以从公共访问中删除注册过程,这意味着用户将无法自行注册,管理员必须负责创建用户。这意味着您将需要

ASP.NET新手问题。我从ASP.NET的入门网站开始,该网站带有一组内置的注册、身份验证页面和成员数据库

现在我的问题是,我如何限制注册到我的网站?此网站用于患者实践,只有患者需要访问

我读过关于角色的文章,但是分配角色意味着用户已经注册了。我不希望在DB中创建的用户没有通过电子邮件或管理员在注册前输入的其他凭据进行授权

请让我知道对初学者网站模板进行此修改的最佳方法


提前感谢。

如评论中所述,您可以从公共访问中删除注册过程,这意味着用户将无法自行注册,管理员必须负责创建用户。这意味着您将需要用户安全角色…至少在您不希望患者能够访问管理区域(如用户管理)的情况下是这样

另一种需要更多努力的方法是“向患者发送电子邮件邀请”。有人可能是管理员,只需输入(至少)一个电子邮件地址,系统就会触发一封电子邮件,邀请用户注册。显然,这要求注册页面/视图可以公开访问,但只对已发出邀请的用户进行保护。确定用户是否是真人很简单。在系统发出邀请时,它会在数据库记录中记录一个条目……比如一个电子邮件地址、一个随机的唯一代码,也许还有一个有效期来验证邀请。随机唯一代码可以是您想要的任何代码,但在系统中必须是唯一的,最重要的是非顺序的(如增量整数或类似的东西)。此代码可以以url查询字符串参数的形式发送给受邀患者,此url是指向注册页面的链接。然后,注册页面将从url中提取此代码,根据数据库记录对其进行验证,删除记录,然后为注册页面提供服务。如果验证失败,您可以轻松地使用403或404 http代码进行响应


正如我所说,这需要您付出一点努力,但您可以使其成为一个健壮的解决方案,您可以报告。

最简单的方法是简单地注释掉
帐户
控制器中与注册相关的操作。任何试图进入注册页面的人都会得到404。所以你建议手动注册用户?是的,我可以这样做,但我希望有一种更优雅的方式,允许用户选择密码而不暴露密码。哦,对不起,我读它是因为你想完全删除任何注册功能,这样管理员就必须为他们注册。你也可以使用随机密码注册用户,然后使用电子邮件验证令牌向他们发送电子邮件,并要求他们完成注册,这也可以让他们设置密码。我认为,既然验证令牌系统已经存在,那么它的发明就少了一点。