2012-08-07 190 views
4

我有一个基本认证的Intranet网站。asp.net基本认证

是否有可能只有一个页面不要求证书? 允许访问任何人只为一个页面?

可以在web.config中为单个页面设置一些东西吗?

+0

这是可能的,只是谷歌它请; “asp.net Authorization”... http://weblogs.asp.net/gurusarkar/archive/2008/09/29/setting-authorization-rules-for-a-particular-page-or-folder-in-web -config.aspx – daryal 2012-08-07 13:15:17

+2

他为什么要谷歌它,它是一个有效的问题,如果有人在这个网站上,并希望做同样的事情,他应该能够在这个网站上搜索并找到它。 – JonH 2012-08-07 13:18:05

+0

因为问题是重复http://stackoverflow.com/questions/3628445/allow-access-for-unathenticated-users-to-specific-page-using-asp-net-forms-authe – daryal 2012-08-07 14:05:30

回答

6

以下元素添加到configuration节点你的web.config:

<location path="aFolder/aPageToExclude.aspx"> 
    <system.web> 
     <authorization> 
      <allow users="*"/> 
     </authorization> 
    </system.web> 
</location> 

欲了解更多信息和用法看看MSDN文档:Location Element (ASP.NET Settings Schema)

+0

不知道是否就足够了,但我已经考虑过了。会尝试一下,看看。谢谢。 – user1468537 2012-08-07 13:26:24

+0

不客气,很高兴如果我能帮忙。 – 2012-08-07 13:27:00

+0

嗯,它仍然要求凭据。这就是我所拥有的<<位置路径=“页面。ASPX “> <授权> <允许用户=” *“/> '和被放置在'<配置>'标签内。 – user1468537 2012-08-07 13:38:48

0

你需要重写你的web.config文件设置。
您需要创建一个文件夹并在该文件夹中再创建一个web.config文件。
然后将Page.aspx放在该文件夹中。
然后修改象下面这样web.config文件代码:

<authentication mode="Forms"> 
</authentication> 

注:

1)你没有提的用户= *它会自动允许所有用户访问下,那些页面夹。

如果您已经使用网页目录结构你可以做的是,那么你就可以保持这种page.aspx在你的登录页面相同的水平。

+0

没有登录页面作为“网站”使用基本身份验证 – user1468537 2012-08-08 11:52:55

1

我所做的是我不使用ASP.Net身份验证。我所做的是当用户输入用户名和密码时,我检查数据库是否存在具有该用户名和密码的行。

您可以使用objDataSet.Tables[0].Rows.Count > 0来做到这一点。你可以把它放在'如果'的情况下,然后把用户名放在会话中。你这样做:

Session["username"] = (Username Variable Here)。然后,您将创建两个主页面,一个用于只能登录访问的页面,另一个可供任何人访问。在仅允许访问登录人员的母版页中,可以检查会话数据是否为空。如果它为空,则可以将该人重定向回登录页面。 LoggedIn主页面可以保持原样。如果你已经有一个母版页,那么你可以复制它,并添加该条件。如果您尚未实现母版页,则可以将条件置于每个需要用户登录的页面的页面加载中以访问该页面。由于您使用的是会话而不是Cookie,因此用户很难侵入此系统。

+2

这不会为接受的答案添加任何内容(这是正确的方法),恐怕我不会推荐_anyone_遵循此建议。 – christophano 2017-05-05 15:28:40