Simplemembership实现匿名用户方法

s_h*_*s_h 6 c# asp.net-mvc-4 simplemembership

Jon Galloway有一个概述 - http://weblogs.asp.net/jgalloway/archive/2012/08/29/simplemembership-membership-providers-universal-providers-and-the-new-asp-net-4-5- ASP.NET MVC 4中新成员资格功能的web-forms-and-asp-net-mvc-4-templates.aspx.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属性的匿名支持.启用匿名配置文件可以为未经身份验证的用户读取和写入配置文件数据,但请注意,每个未经身份验证的访问者都将自动在配置文件数据库中创建用户帐户.

我想在简单的会员中复制这个.我不想使用旧的配置文件系统b因为它的商店值在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>
Run Code Online (Sandbox Code Playgroud)

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

Kev*_*ans 3

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

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

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

根据更新的问题更新答案

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