我正在开发一个具有简单身份验证过程的asp.net mvc
3.0应用程序。用户填写一个通过ajax调用发送到服务器并获得响应的表单,但是这里的问题是使用以下方法:
FormsAuthentication.SetAuthCookie(person.LoginName,false);
不足以填充“ HttpContext.Current.User”,并且需要运行以下方法:
FormsAuthentication.RedirectFromLoginPage("...");
这里的问题是,正如我提到的,loggin表单使用ajax表单,并使用json获取响应,因此无法进行重定向。
我如何填写’HttpContext.Current.User’?
谢谢。
更新:
这是注册方法:
[HttpPost]
public ActionResult Register(Person person)
{
var q = da.Persons.Where(x => x.LoginName == person.LoginName.ToLower()).FirstOrDefault();
if (q != null)
{
ModelState.AddModelError("", "Username is repettive, try other one");
return Json(new object[] { false, this.RenderPartialViewToString("RegisterControl", person) });
}
else
{
if (person.LoginName.ToLower() == "admin")
{
person.IsAdmin = true;
person.IsActive = true;
}
da.Persons.Add(person);
da.SaveChanges();
FormsAuthentication.SetAuthCookie(person.LoginName,false);
return Json(new object[] { true, "You have registered successfully!" });
}
}
这是我最终使用的版本,该版本基于@ AdamTuliper-
MSFT的回答。它仅应在登录后但在重定向之前使用,以允许其他代码访问HttpContext.User
。
在调用SetAuthCookie()之后调用此函数,如下所示:
// in login function
FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
AuthenticateThisRequest();
private void AuthenticateThisRequest()
{
//NOTE: if the user is already logged in (e.g. under a different user account)
// then this will NOT reset the identity information. Be aware of this if
// you allow already-logged in users to "re-login" as different accounts
// without first logging out.
if (HttpContext.User.Identity.IsAuthenticated) return;
var name = FormsAuthentication.FormsCookieName;
var cookie = Response.Cookies[name];
if (cookie != null)
{
var ticket = FormsAuthentication.Decrypt(cookie.Value);
if (ticket != null && !ticket.Expired)
{
string[] roles = (ticket.UserData as string ?? "").Split(',');
HttpContext.User = new GenericPrincipal(new FormsIdentity(ticket), roles);
}
}
}
编辑: 删除对Request.Cookies的调用,如@ AdamTuplier-MSFT所述。
我将设置为,并将其添加到我的。当我运行和echo,它们都给了我正确的信息。但是,当我运行libgdx安装程序时,它会给出以下错误:<code>错误:未设置JAVA_HOME,并且在路径中找不到任何“JAVA”命令。 请在您的环境中设置JAVA_HOME变量,以匹配您的JAVA安装位置。 有什么想法吗?
设置菜单 可从主菜单进入设置当功能打开时,轻击以便将图标转成绿色。 连续心率。开关连续心率追踪。 飞行模式。切断健身追踪设备的所有无线通讯。 “请勿打扰”模式。禁用因手腕运动的显示屏亮起,并阻断来自您手机的智能通知。 心率 传感器模式。使用 A370 作为心率传感器,并配备心率接收设备。 关机。关闭设备。 重置当前蓝牙连接。若要使用任何蓝牙配件,需要与设备再次配对。 信息。查看您设备的 ID,固件
一、简介 “设置"用于PHPCMS系统常用参数配置与管理员帐号维护。 二、功能演示 相关设置 管理员设置
设置 设置包含:采集设置、站点设置、邮件发送设置、代理设置等 采集设置 开启自动采集、设置采集参数、图片本地化 页面渲染设置 代理设置 防止被屏蔽IP 翻译设置 支持百度翻译和有道翻译 站点设置 关闭前台首页、开启图片验证码 邮件发送设置 找回密码时使用
设置 控制台有很多设置,这些设置都可以在控制面板中找到。点击右上角的齿轮按钮就能打开设置面板。 图 10. 设置面板
设置 产品简介 用户可以在小程序设置页里控制授权状态,设置页位置:右上角-更多-关于-更多-设置 开放标准 对所有入驻小程序的企业开放 接口说明 jd.openSetting(OBJECT) 调起宿主客户端小程序设置界面,返回用户设置的操作结果,设置界面只会出现小程序已经向用户请求过的权限。 Object 参数说明: 参数 类型 必填 说明 success Function 否 接口调用成功的回调