gpt4 book ai didi

c# - Simplemembership 实现匿名用户方法

转载 作者:太空狗 更新时间:2023-10-29 21:50:59 26 4
gpt4 key购买 nike

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 provider 类,但它的方法没有引用匿名标识。

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

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

启用匿名配置文件: 默认情况下,配置文件数据仅对经过身份验证的用户可用,如果我们在当前用户未登录时尝试写入配置文件属性,则会抛出异常。我们可以通过启用对匿名配置文件的支持来更改此设置,如如 list 22-17 所示。启用匿名识别后,ASP.NET 框架将通过为匿名用户提供一个名为 .ASPXANONYMOUS 的 cookie 来跟踪匿名用户,该 cookie 在 10,000 分钟(大约 70 天)后过期。我们可以通过将 allowAnonymous 属性设置为 true 来启用对配置文件属性的匿名支持;在列表中,我们启用了对 Name 和 City 属性的匿名支持。启用匿名配置文件可以读取和写入未经身份验证的配置文件数据用户,但请注意,每个未经身份验证的访问者都会在配置文件数据库中自动创建一个用户帐户。

我想在简单的成员资格中复制它。我不想使用旧的配置文件系统 b,因为它在 blob 中存储值。 brgds!.

**更新: list 22-17: list 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 属性启用了匿名支持的列表。**

最佳答案

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

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

如果用户是真正匿名的并且您无法识别他们,您仍然会使用基于角色的授权和基于表单的身份验证,通过使用 AllowAnonymousAttribute 修饰 Controller /操作来提供受限访问。对于您要允许访问的区域。

根据更新的问题更新答案

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

关于c# - Simplemembership 实现匿名用户方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13928771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com