6

Jon Galloway 有一个概述 - http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5- web-forms-and-asp-net-mvc-4-templates.aspx - ASP.NET MVC 4 中的新成员功能。 Internet 项目模板从 ASP.NET 的核心成员提供程序转移到SimpleMembershipProvider 和 OAuth。

关于 simplemembership,有谁知道是否可以使用开源http://aspnetwebstack.codeplex.com/对其进行扩展,以便能够允许匿名用户存储在数据库中 - 可能在 userprofile 表中?

我检查了http://msdn.microsoft.com/en-us/library/webmatrix.webdata.simplemembershipprovider simplemembership 提供程序类,但它的方法没有参考匿名标识。

如果不可能,是否有人知道有关构建 ExtendedMembershipProvider 的信息?brgds!

更新信息:来自 pro.asp.netmvc3 书。关于认证授权-

启用匿名配置文件默认情况下,配置文件数据仅适用于经过身份验证的用户,如果我们在当前用户尚未登录时尝试写入配置文件属性,则会引发异常。我们可以通过启用对匿名配置文件的支持来更改这一点,如清单所示22-17。启用匿名标识后,ASP.NET 框架将通过为匿名用户提供名为 .ASPXANONYMOUS 的 cookie 来跟踪匿名用户,该 cookie 在 10,000 分钟(大约 70 天)后过期。我们可以通过将 allowAnonymous 属性设置为 true 来启用对配置文件属性的匿名支持;在清单中,我们启用了对 Name 和 City 属性的匿名支持。启用匿名配置文件可以为未经身份验证的用户读取和写入配置文件数据,但请注意,

我想在 simplemembership 中复制它。我不想使用旧的配置文件系统,因为它在 blob 中存储值。brgds!

* *更新:清单 22-17:清单 22-17。启用对匿名配置文件的支持

<configuration>
<system.web>
<anonymousIdentification enabled="true"/>
<profile>
<providers>
<clear/>
<add name="AspNetSqlProfileProvider"
type="System.Web.Profile.SqlProfileProvider"
connectionStringName="ApplicationServices"
applicationName="/" />
</providers>
<properties>
<add name="Name" type="String" allowAnonymous="true"/>
<group name="Address">
<add name="Street" type="String"/>
<add name="City" type="String" allowAnonymous="true"/>
<add name="ZipCode" type="String"/>
<add name="State" type="String"/>
</group>
</properties>
</profile>
</system.web>
</configuration>

启用匿名标识后,ASP.NET 框架将通过为匿名用户提供名为 .ASPXANONYMOUS 的 cookie 来跟踪匿名用户,该 cookie 在 10,000 分钟(大约 70 天)后过期。我们可以通过将 allowAnonymous 属性设置为 true 来启用对配置文件属性的匿名支持;在清单中,我们启用了对 Name 和 City 属性的匿名支持。**

4

1 回答 1

3

我认为您所描述的场景是用户在应用程序中注册但可能没有确认、完成他们的个人资料或其他一些标准;在他们完成这些要求之前,他们被视为匿名用户,对应用程序的访问权限有限。我假设用户输入了一些最低限度的信息来识别用户,例如用户名和密码。

处理此问题的最简单方法可能是拥有一个所有新用户都会自动分配到的“匿名”角色。现在,您可以使用基本表单身份验证方法来限制对使用AuthorizeAttribute的控制器/操作的访问。一旦用户完成了不匿名的标准,您就可以切换他们的角色或添加一个新角色以赋予他们完全访问权限。

如果用户是真正匿名的并且您无法识别他们,您仍然可以使用基于角色的授权和表单基础身份验证,通过使用AllowAnonymousAttribute为您希望允许访问的区域装饰控制器/操作来提供受限访问。

基于更新问题的更新答案

看看这个 ASP.NET 论坛中的答案。基本上它的意思是您可以通过管理自己的 cookie 和自己的数据库模式来实现目标,但它不能作为 SimpleMembership 提供程序的一部分。

于 2013-01-22T13:50:42.197 回答