日期:2014-05-18  浏览次数:20433 次

.net forms身份验证的问题
我用的.net   forms的身份验证,但现在出现一个问题,就是当一个管理员成功登录后,其它的人不登录就可以直接访问后台页面了不会被返回到登录页面,但如果管理没有登录,其它的人都访问不了

------解决方案--------------------
如果应用程序的根目录中有 Web.config 文件,请打开该文件。

如果应用程序的根文件夹中没有 Web.config 文件,请创建一个名为 Web.config 的文本文件,并在其中添加下列元素:

复制代码 
<?xml version="1.0"?>
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
<system.web>

</system.web>
</configuration>
 

在 system.web 元素中,创建一个 authentication 元素,并将它的 mode 属性设置为 Forms,如下面的示例所示:

复制代码 
<system.web>
<authentication mode="Forms"> </authentication>
</system.web>
 

在 authentication 元素中,创建一个 forms 元素,并设置下列属性:

loginUrl 设置为“Logon.aspx”。Logon.aspx 是 ASP.NET 在找不到包含请求内容的身份验证 Cookie 的情况下进行重定向时所使用的 URL。

name 设置为“.ASPXFORMSAUTH”。这是为包含身份验证票证的 Cookie 的名称设置的后缀。

复制代码 
<system.web>
<authentication mode="Forms">
<forms loginUrl="Logon.aspx" name=".ASPXFORMSAUTH"> </forms>
</authentication>
</system.web>
 

在 system.web 元素中,创建一个 authorization 元素。

复制代码 
<system.web>
<authentication mode="Forms">
<forms loginUrl="Logon.aspx" name=".ASPXFORMSAUTH">
</forms>
</authentication>
<authorization> </authorization>
</system.web>
 

在 authorization 元素中,创建一个 deny 元素,并将其 users 属性设置为“?”。这是指定将拒绝未通过身份验证的用户(由“?”表示)访问该应用程序中的资源。

复制代码 
<system.web>
<authentication mode="Forms">
<forms loginUrl="logon.aspx" name=".ASPXFORMSAUTH">
</forms>
</authentication>
<authorization>
<deny users="?" />
</authorization>
</system.web>
 

保存并关闭 Web.config 文件。