如何在ASP.NET中处理未经过验证的站点导航?

时间:2010-04-11 17:47:17

标签: asp.net authentication

我想知道如何做以下......

我有一个注册系统。当用户成功注册时,他就是 然后,领导了一系列数据收集页面(对于他的个人资料),然后, 最后,在他的个人资料的主页上结束,他可以开始使用该网站。

所有这些都是在没有登录系统的情况下发生的,因此,他是未经身份验证的 并且未经证实。

我的问题是,这是怎么发生的?如何允许我的用户未经身份验证(并且未经证实,但我理解这一点)并使用网站的所有方面?

我现在设置的方式,我的代码应该这样做:

case CreateProfileStatus.Success:
//FormsAuthentication.SetAuthCookie(userName, false);
Response.Redirect("NextPage.aspx", false);
break;

但是,我在注册后被重定向到登录页面,这不是我想要的结果。这就是我的web.config中的相关节点的样子:

    <authentication mode="Forms">
      <forms name=".AuthCookie" loginUrl="default.aspx" protection="All"/>
    </authentication>
    <authorization>
      <deny users="?"/>
      <allow roles="Administrators" />
    </authorization>
    <anonymousIdentification enabled="true" 
                             cookieName=".ASPXANONYMOUS"
                             cookieTimeout="100000" cookiePath="/" 
                             cookieRequireSSL="false"
                             cookieSlidingExpiration="true" 
                             cookieProtection="Encryption"
                             cookieless="UseCookies" 
                             domain="" />

当用户在注册和与网站初次互动后退出时,他将需要在返回时登录。此时他必须经过身份验证,但不需要确认一段时间。最终,他会被提醒。

那么,这是怎么做到的?提前谢谢。

1 个答案:

答案 0 :(得分:0)

现在,拒绝用户=“?”拒绝匿名用户访问网站的所有部分。表单身份验证不是全部或全部。您可以将其设置为仅应用于您网站的一部分。由于您已将其应用于任何地方,因此每当您有一位未获得身份验证cookie的匿名用户时,他们将被重定向到“default.aspx”,这是他们登录所需的位置。

如果我理解正确,您需要执行以下操作...将站点的注册部分设置为对匿名用户开放(您可以在web.config的授权部分中执行此操作)。这将阻止在注册过程中重定向到“default.aspx”。完成注册后,您可以将它们发送到“default.aspx”进行登录,或者识别它们现在已注册并登录(通过使用FormsAuthentication.SetAuthCookie方法)。