asp.net – 如何在不使用FormsAuthentication.RedirectFromLoginPage时将R
发布时间:2020-05-23 11:01:34 所属栏目:asp.Net 来源:互联网
导读:我使用表单身份验证,并向服务器发送Aajx请求进行身份验证。基于json结果,客户端决定去哪里和做什么。这是我不使用FormsAuthentication.RedirectFromLoginPage不干扰ajax / json响应的原因。 在这种情况下,即使在使用Membership.ValidateUser验证用户后,Re
|
我使用表单身份验证,并向服务器发送Aajx请求进行身份验证。基于json结果,客户端决定去哪里和做什么。这是我不使用FormsAuthentication.RedirectFromLoginPage不干扰ajax / json响应的原因。 在这种情况下,即使在使用Membership.ValidateUser验证用户后,Request.IsAuthenticated也返回false。然后我设置cookie使用 FormsAuthentication.SetAuthCookie(username,false); 虽然第二个参数,持久cookie,是false,cookie仍然有效跨浏览器会话。 任何想法如何使Request.IsAuthenticated工作,而不使用FormsAuthentication.RedirectFromLoginPage? 解决方法您需要更新请求的当前安全主体。当您调用Response。重定向(…)一个新的请求完成,安全主体被重新初始化,并且Request.IsAuthenticated在你的case返回true。 FormsAuthentication.RedirectFromLoginPage内部调用响应。重定向(…)。您可以手动更新当前请求的安全主体,如下所示:public void RenewCurrentUser()
{
System.Web.HttpCookie authCookie =
System.Web.HttpContext.Current.Request.Cookies[FormsAuthentication.FormsCookieName];
if (authCookie != null)
{
FormsAuthenticationTicket authTicket = null;
authTicket = FormsAuthentication.Decrypt(authCookie.Value);
if (authTicket != null && !authTicket.Expired)
{
FormsAuthenticationTicket newAuthTicket = authTicket;
if (FormsAuthentication.SlidingExpiration)
{
newAuthTicket = FormsAuthentication.RenewTicketIfOld(authTicket);
}
string userData = newAuthTicket.UserData;
string[] roles = userData.Split(',');
System.Web.HttpContext.Current.User =
new System.Security.Principal.GenericPrincipal(new FormsIdentity(newAuthTicket),roles);
}
}
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 使用Entity Framework的仓库模式(mvc storefron
- asp.net-mvc – 一种在MVC环境中处理返回URL的智能方法
- ASP.NET MVC4 WebApi路由中包含文件名
- 为什么私有事件处理程序在ASP.NET中不起作用
- 使用ASP.NET SDK将文件上载到S3存储桶的文件夹
- asp.net-mvc – 重新安装Microsoft Visual Studio Asp.net
- asp.net – FireFox中的默认表单按钮
- asp.net-web-api – 可以从Request对象获取当前的MediaType
- asp.net – 电子邮件CSS
- asp-classic – 如何从此ADODB.Recordset获取插入ID?
推荐文章
站长推荐
- 如何将Ninject集成到ASP.NET Core 2.0 Web应用程
- asp.net – 如何从SQL表中的列获取XML数据?
- asp.net-mvc – 使用Windows身份验证与活动目录组
- asp.net-mvc – HTTP错误500.19 – 内部服务器错
- asp.net-mvc – ErrorAttribute vs OnException与
- asp.net-mvc – 如何锁定ASP.NET MVC中的路径?
- ASP.NET网站内存使用率相当高
- asp.net-mvc – 单元测试视图?
- asp.net – 保持当前的jQuery标签跨回发?
- 如何利用ASP.net IIS 7.5中的浏览器缓存
热点阅读
