如何防止在ASP.NET/IIS环境中直接调用URL?

问题描述:

如何在ASP.NET应用程序中实现一组URL/ASPX页面(应用程序的一部分)不能直接从浏览器中的用户调用?这些URL /页面只能在应用程序本身中引用。如何防止在ASP.NET/IIS环境中直接调用URL?

你不能。如果用户可以访问一个页面,他们将能够直接调用它。你不能控制人们的浏览器...

一种选择是看看"HTTP_REFERER"标题,如果它是空的或有意外的值重定向。这确实意味着你的应用程序将不得不设置它。

另一个是创建一个自定义标题(例如“X-my-app”),如果它不存在,重定向。

+0

HTTP_REFERER被称为带有附加R的引用者,因为W3C的人没有通过拼写检查... :-)它应该是HTTP_REFERRER ...但的确,请检查引荐来检查上一页。如果这是意想不到的值,请重定向到其他地方。 (使用ASP.NET,您可以将此逻辑添加到母版页中,但是您的索引页应该对所有访问者都是例外。) – 2010-08-02 09:03:01