我有一个具有基本身份验证的 Intranet 站点。
是否可以只有一页不要求提供凭据?就像只允许一页访问任何人一样?
可以在 web.config 中为单页设置一些东西吗?
我有一个具有基本身份验证的 Intranet 站点。
是否可以只有一页不要求提供凭据?就像只允许一页访问任何人一样?
可以在 web.config 中为单页设置一些东西吗?
将以下元素添加到configuration
您的 web.config 节点:
<location path="aFolder/aPageToExclude.aspx">
<system.web>
<authorization>
<allow users="*"/>
</authorization>
</system.web>
</location>
有关更多信息和用法,请查看 MSDN 文档:Location Element (ASP.NET Settings Schema)
我所做的是我不使用 ASP.Net 身份验证。我所做的是当用户输入他们的用户名和密码时,我检查数据库是否存在具有该用户名和密码的行。
您可以使用objDataSet.Tables[0].Rows.Count > 0
. 您可以将其置于“if”条件下,然后获取用户名并将其放入会话中。你这样做:
Session["username"] = (Username Variable Here)
. 然后,您创建两个母版页,一个用于只有登录人员才能访问的页面,另一个用于任何人都可以访问的页面。在只允许登录的人访问的母版页中,您可以检查会话数据是否为空。如果为空,您可以将该人重定向回登录页面。LoggedIn 母版页可以保持原样。如果您已经有一个母版页,那么您可以复制它并添加该条件。如果您还没有实现母版页,您可以将条件放在需要用户登录才能访问该页面的每个页面的页面加载中。因为您使用的是会话而不是 cookie,所以用户更难侵入该系统。
您需要覆盖您的 web.config 文件设置。
您需要创建一个文件夹并在该文件夹中再创建一个 web.config 文件。
然后将 Page.aspx 放在该文件夹中。
然后修改 web.config 文件代码,如下所示:
<authentication mode="Forms">
</authentication>
笔记:
1)您不必提及 users=* 它会自动允许所有用户访问该文件夹下的那些页面。
或者
您可以做的是,如果您已经在为页面使用目录结构,那么您可以将该 page.aspx 保持在您拥有登录页面的同一级别。