所以我按照本教程在.net中安装和使用Identity Framework。 http://www.asp.net/identity/overview/getting-started/adding-aspnet-identity-to-an-empty-or-existing-web-forms-project
在register.aspx和login.aspx页面上,一切正常。
我想从登录页面中获取此逻辑...
if (User.Identity.IsAuthenticated) {
//do something...
}
并将其放在母版页的Page_Load中(因此我可以显示登录或注销链接,具体视情况而定)
然而,当我这样做时,我收到一条错误,内容为
名称'用户'在当前上下文中不存在
我在主页上的代码中使用了以下内容,这里的所有内容都在login.aspx页面上,其中'用户'找到了。
using Microsoft.AspNet.Identity;
using Microsoft.AspNet.Identity.EntityFramework;
using Microsoft.Owin.Security;
using SugarSpun_v2;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
我有点困惑!您如何在母版页上使用Identity Framework?我实际上最终希望将登录表单集成到母版页本身上,所以这可能会导致我出现问题!
任何帮助表示感谢,只是刚刚发现了Indentity Framework,所以请温柔:)
答案 0 :(得分:5)
尝试查看HttpContext.Current.User
是否可以访问。
答案 1 :(得分:3)
如果仔细观察User.Identity.IsAuthenticated
,请参阅,不是Asp.Net Identity框架的一部分。 User
类以IPrincipal
提供,它是.Net框架的一部分。 User.Identity
正在实现IIdentity
接口,该接口也是.Net框架的一部分。
AspNet Identity框架的作用是将ClaimsPrincipal
作为HttpContext.Current.User
ClaimsIdentity
作为IIdentity
。
因此,使用HttpContext.Current.User
的所有代码都应该与新框架一样好(在所有项目转换中为我工作)。
正如@Kippie正确回答,HttpContext.Current.User
应该为您提供登录的用户详细信息。只要有HTTP请求发生。