以编程方式检查页面是否需要基于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)。