Simplemembership实现匿名用户方法

时间:2012-12-18 08:09:43

标签: 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-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属性的匿名支持。 启用匿名配置文件可以读取和写入未经身份验证的配置文件数据 用户,但要注意,每个未经身份验证的访问者都会自动在个人资料数据库中创建用户帐户。

我想在简单的会员中复制这个。我不想使用旧的配置文件系统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>

启用匿名身份验证后,ASP.NET框架将跟踪匿名用户 给他们一个名为.ASPXANONYMOUS的cookie,在10,000分钟后(大约70天)到期。我们 通过将allowAnonymous属性设置为true,可以启用对配置文件属性的匿名支持;在 我们已经为名称和城市属性启用了匿名支持。**

1 个答案:

答案 0 :(得分:3)

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

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

如果用户是真正匿名的并且您无法识别它们,您仍然会使用基于角色的授权并通过使用AllowAnonymousAttribute为您想要允许的区域装饰控制器/操作来形成基本身份验证以提供受限访问权限访问。

根据更新的问题更新了答案

看看answer in this ASP.NET Forum。基本上它说的是你可以通过管理你自己的cookie和你自己的数据库模式来实现你的目标,但它不能作为SimpleMembership提供者的一部分工作。