asp.net – 在某些情况下如何覆盖/更改FormsAuthentication Logi
有没有办法动态更改FormsAuthentication的LoginUrl?我所拥有的是由FormsAuth保护的整个站点,但是对于子文件夹中的某些页面,我想将用户带到不同的登录页面,并且具有FormsAuth处理ReturnUrl的东西.是否可能,或者我必须为子文件夹案例编写自己的重定向代码?
这是一个示例布局: ~/LogOn1.aspx ~/Protected1.aspx ~/Protected2.aspx ~/Subfolder/ ~/Subfolder/LogOn2.aspx ~/Subfolder/NotProtected.aspx ~/Subfolder/Protected3.aspx 所以我的web.config看起来像: <forms loginUrl="~/Splash.aspx" ... /> 所有受保护的* .aspx页面都有 <deny users="?"> 我想要的是,如果用户是匿名的,将?/ Subfolder / Protected3.aspx重定向到?/ Subfolder / LogOn2.aspx. 我试过在?/ Subfolder / web.config中放置一个被删除的web.config版本: <?xml version="1.0"?> <configuration> <system.web> <authentication mode="Forms"> <forms loginUrl="~/Subfolder/LogOn.aspx" name="SiteAuth" protection="All" timeout="30" path="/" defaultUrl="~/Subfolder/default.aspx" requireSSL="true" cookieless="UseCookies" enableCrossAppRedirects="false" /> </authentication> <authorization> <deny users="?" /> </authorization> </system.web> </configuration> 但是所有这些都是我的错误:
我认为使这个子文件夹应用程序在这一点上会产生更多的问题,但也许我错了.如果是一个应用程序,不会将?/ Subfolder中的所有代码与父应用程序的其余部分分开? 解决方法
您所遇到的问题是
Forms element仅在应用程序级别允许 – 您无法在子web.config中定义它.
不幸的是,您也无法使用Location element定义它,而FormsAuthentication.LoginUrl属性是只读的. 狩猎一下,看起来你最好的打赌是在您的登录页面上有一些代码可以检测用户从哪里到达(即通过检查“ReturnUrl”查询字符串的值)并重定向到您的其他登录页面如果他们来自子目录.不过,我承认,如果您想为多个子目录定制登录页面,这一切都不会很好地扩展. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 将ASP.NET验证与JQuery相结合的优雅方式
- asp.net-mvc – Asp.Net核心MVC6如何最初在Identity 3中添加
- asp.net-mvc – 将id类型从string更改为int时,如何在Web AP
- views – 我应该在asp.net MVC6中为我的所有图像添加asp-ap
- asp.net-mvc – 如何使用ASP.NET MVC对网页授权进行单元测试
- .net – MVC6的VersionedRoute属性实现
- asp.net – CollapsiblePanelExtender在初始页面加载时不会
- asp.net-mvc-3 – 由Enter按钮触发的MVC3输入按钮
- 如何使用ASP.NET创建XML文件并提示下载?
- 如何在ASP.net中取消事件冒泡?
- asp.net-mvc – 为什么HttpContext.Current在asp
- asp.net – System.Runtime.InteropServices.COM
- asp.net – LinkBut??ton不会在click()上调用
- 第11章 ASP.NET Web API
- asp.net-mvc – 可以在ASP.NET MVC中本地化URL /
- asp.net-mvc – 如何与NopCommerce MVC合作
- asp.net – 将webgrid导出为pdf asp mvc razor
- .net – 强制ActionLinks呈现为小写
- asp.net – 当主机名中有下划线时,表单身份验证无
- asp.net-mvc – MVC控制器正在被调用两次