C#中的web.config有一个地方老是不明白,请高手赐教,谢谢!

来源:百度知道 编辑:UC知道 时间:2024/07/04 18:28:13
关于验证用户方面的问题,而我想的问的问题就是Forms验证方式。代码如下
<authentication mode="Forms">
<forms name="authWeb" loginUrl="error.aspx" protection="All" ></forms>
</authentication>

<authorization>
<deny users="?"/>
</authorization>

问题一、为什么这种方式非要禁用匿名帐户呢?如果我允许所有用户/匿名帐户的话,这种验证方式还不好用?

问题二、(也是我最主要的问题)这种方式是验证一个页面是否合法,如果合法就转向其他页面,假如我刚开始设置index.aspx为起始页面,但这个页面不需要验证,为什么程序一执行就直接转向到了error.aspx页面了呢?

换句话说,只有在我输入用户名或者密码不对的前提下,才转向这个页面,其他没有输入用户名和密码的地方不需要转向,而index.aspx没有输入用户名或密码的地方,请问如何避免这样的问题发生!

请高手赐教,小弟不胜感激!谢谢!

问题一,这种方式不一定非要禁用匿名用户,允许的话照样好用。

问题二,这种方式并不是验证页面是否合法,而是验证登录用户是否合法,其实就是判断当前的Session里是否有指明访问者身份的信息。你既然设定了protection="All",也就是访问网站所有页面都会进行身份验证,同时你又禁止了匿名账户,当你首次登陆的时候必然是匿名身份,所以会自动导向error.aspx。

你所说的情况正是允许匿名登录的情况。这样能保证你可以不登录而访问网站。而访问限制则需要你另外写代码判断。