使用表单身份验证,当应用程序需要重定向到登录页面时,是否有一个事件或任何可扩展点可以让我在重定向到登录页面之前对请求执行其他工作?
我想在查询字符串中发送附加信息,这些信息可能会有所不同,因此无法将其静态嵌入到 web.config 中的 loginUrl 节点的链接中。
Edit:为了澄清起见,我想在重定向之前拦截请求至登录 page.
Example:
<authentication mode="Forms">
<forms loginUrl="http://the/interwebs/login.aspx" timeout="2880"
enableCrossAppRedirects="true" />
</authentication>
在用户被重定向到之前http://the/interwebs/login.aspx http://the/interwebs/login.aspx我希望能够打包查询值,以便 url 最终可能类似于http://the/interwebs/login.aspx?Action=刷新 http://the/interwebs/login.aspx?Action=Refresh
您可以通过处理事件来做到这一点HttpApplication.AuthenticateRequest http://msdn.microsoft.com/en-us/library/system.web.httpapplication.authenticaterequest.aspx
private void Application_AuthenticateRequest(Object source, EventArgs e)
{
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
string cookieName = FormsAuthentication.FormsCookieName;
HttpCookie authCookie = context.Request.Cookies[cookieName];
if (authCookie == null || string.IsNullOrEmpty(authCookie.Value))
{
//... do something
}
仅供参考,我们目前通过 IHttpModule 实现来做到这一点。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)