如何在ASP.NETMembership中使用匿名用户

如何在ASP.NETMembership中使用匿名用户,asp.net,authentication,Asp.net,Authentication,在尝试访问UserID时,最好检查空用户,还是应该分配一个匿名帐户?或其他?您应该检查是否没有当前用户,然后自动创建一个新的用户帐户,并在后台登录。如果您使用cookie(并假设用户启用了cookie),此“匿名用户”的后续访问仍将映射到用户存储库中的同一帐户,这对于跟踪活动非常有用 您可以自动将用户分为“已注册”组和“自动/匿名”组。这使得您的代码很容易辨别行为方式——例如,通过当前用户是否是“匿名”组的成员来决定是否显示“登录”或“我的帐户”链接。如果用户决定迁移到已注册的帐户,则可以更轻松

在尝试访问UserID时,最好检查空用户,还是应该分配一个匿名帐户?或其他?

您应该检查是否没有当前用户,然后自动创建一个新的用户帐户,并在后台登录。如果您使用cookie(并假设用户启用了cookie),此“匿名用户”的后续访问仍将映射到用户存储库中的同一帐户,这对于跟踪活动非常有用


您可以自动将用户分为“已注册”组和“自动/匿名”组。这使得您的代码很容易辨别行为方式——例如,通过当前用户是否是“匿名”组的成员来决定是否显示“登录”或“我的帐户”链接。如果用户决定迁移到已注册的帐户,则可以更轻松地通过活动历史记录迁移到该帐户。

您应该检查是否没有当前用户,然后自动创建一个新的用户帐户并在后台登录。如果您使用cookie(并假设用户启用了cookie),此“匿名用户”的后续访问仍将映射到用户存储库中的同一帐户,这对于跟踪活动非常有用


您可以自动将用户分为“已注册”组和“自动/匿名”组。这使得您的代码很容易辨别行为方式——例如,通过当前用户是否是“匿名”组的成员来决定是否显示“登录”或“我的帐户”链接。如果/当用户决定这样做时,还可以更轻松地通过活动历史迁移到注册帐户。

在ASP.NET成员资格中,您可以调用以下函数来检查用户是否登录/验证/匿名

User.Identity.IsAuthenticated()

在ASP.NET成员身份中,您可以调用以下函数来检查用户是否已登录/验证/匿名

User.Identity.IsAuthenticated()

如果您在页面上,则
User.Identity.IsAuthenticated()
属性将为您提供一个布尔值。如果您不在页面上(即,希望签入类方法),则需要导入
System.Web.HttpContext
命名空间。

如果您在页面上,则
User.Identity.IsAuthenticated()
属性将为您提供一个布尔值。如果您不在页面上(即,希望签入类方法),则需要导入
System.Web.HttpContext
命名空间。

您的意思是这里的匿名用户与只是四处浏览的“访问者”不同吗?(比如堆栈溢出未注册)或者你的意思是任何访问该站点的人都应该在后台登录?这不是太多了吗?@zsharp任何访问该网站的人都应该在幕后登录。乍一看,这听起来可能很多,但实际上它简化了事情,因为所有用户都被视为相同的登录用户。唯一的区别是登录机制,它可以抽象为两个提供者-用户名/密码登录和自动、不可见的登录。另外,我会创建一个新成员并分配一个新id还是重新使用“来宾”帐户?如果是前者,我是否需要定期清理匿名用户的数据库?@zsharp肯定会在无法通过cookie或其他方式识别客人时创建一个新帐户。如果因为数据库中的来宾帐户太多而开始遇到空间限制,那么这是一个很好的问题!你的意思是这里的匿名用户不同于只是四处浏览的“访客”吗?(比如堆栈溢出未注册)或者你的意思是任何访问该站点的人都应该在后台登录?这不是太多了吗?@zsharp任何访问该网站的人都应该在幕后登录。乍一看,这听起来可能很多,但实际上它简化了事情,因为所有用户都被视为相同的登录用户。唯一的区别是登录机制,它可以抽象为两个提供者-用户名/密码登录和自动、不可见的登录。另外,我会创建一个新成员并分配一个新id还是重新使用“来宾”帐户?如果是前者,我是否需要定期清理匿名用户的数据库?@zsharp肯定会在无法通过cookie或其他方式识别客人时创建一个新帐户。如果因为数据库中的来宾帐户太多而开始遇到空间限制,那么这是一个很好的问题!