以编程方式检查页面是否需要基于web.config设置进行身份validation

我想知道是否有办法检查页面是否需要基于web.config设置进行身份validation。 基本上如果有这样的节点

       

然后我想检查任何页面是否需要身份validation,如果它在帐户目录下,则返回true。 这可能吗?

解决方案是创建匿名身份(主体),并将其传递给CheckUrlAccessForPrincipal方法。 它将确定页面是公开的还是需要身份validation。

见下面的代码:

 var principal = new GenericPrincipal(new GenericIdentity(String.Empty, String.Empty), new string[]{}); bool requiredAuthentication = UrlAuthorizationModule.CheckUrlAccessForPrincipal(Page.AppRelativeVirtualPath, principal, Request.HttpMethod); 

您在检查用户请求的页面吗? 它不太可能,因为请求永远不会到达页面。 检查url授权工作流程。

在此处输入图像描述

http://www.asp.net/web-forms/tutorials/security/membership/user-based-authorization-cs

我对你的确切要求感到有点困惑,但是要使用你的web.config在逐页的基础上强制执行身份validation,你需要这样的东西:

         

如果您需要更细粒度,则需要将逻辑添加到中间层,然后检查页面加载或URL请求(如果是MVC)。