5

我正在尝试重新学习 ASP.NET 并构建一些应用程序,但是教程似乎很短。

我了解 ASP.NET 现在带有内置成员资格,允许用户创建和编辑、登录用户。但是,有没有办法让我创建一个用户控制器。从我读过的内容来看,这是一个很大的问题,因为它可能与 AccountController 冲突。也许这是错误的,但我想先确定一下。

此外,我了解我可以在控制器(操作或类)中使用 [Authorize] 一词来限制对用户的访问。但是,如果我提供 [Authorize(Roles="Admin")] 如何为用户定义角色?提供此功能的会员资格中是否已经存在一个字段,或者我是否需要提供第二个 nuget 包。如果它是来自用户的字段,它如何知道 Roles 是 User 表中的值?

4

2 回答 2

10

你混淆了很多东西。Asp.net 是基本的 Web 技术,在此之上存在三种技术。Web 表单、网页和 MVC。

自 2005 年发布的第 2 版以来,成员资格一直是 asp.net 的一部分。这并不是什么新鲜事。这些年有很多关于它的文章。

如果您使用的是 MVC(看起来确实如此)并且您使用的是 MVC4,则默认 Internet 模板使用 SimpleMembership,它与 Visual Studio 中的内置成员编辑器(称为网站管理工具)不兼容或 WSaT)。这仅与旧的 SqlMembership 数据库表兼容,SimpleMembership 不使用这些表。

您可以将 SqlMembership 与 MVC4 一起使用,但您必须将其配置为使用 SqlMembership。或者,您可以不使用 WSaT 并自己配置您的用户。

Oh, and don't listen to people that tell you to create custom membership providers. This is the worst advice possible unless you know what you are doing, because it's non-trivial to create secure password hashing techniques. And 99% of people that try (even people that should know better) get it wrong unless they pay very close attention.

Use a provider from a reputable source unless you have VERY good reason not to. And then, check, double check, triple check your hashing code and then have an expert check it.

于 2013-07-20T20:43:55.200 回答
4

对于 asp.net 中的身份验证和授权,请查看表单身份验证和成员资格提供程序(以及角色的角色提供程序)

快速搜索给出这篇文章:这里

看看其他搜索“自定义会员提供者

这看起来也很有趣:如何为 ASP.NET MVC 2 创建自定义成员资格提供程序?

于 2013-07-20T19:36:50.417 回答