[英]In Asp.net what would you put in the Session_Start and Session_End events in Global.asax?
[英]Call Membership.GetUser() from Session_Start in global.asax - ASP.NET identity
我正在尝试使用ASP.NET Identity 2.0从global.asax中的Session_Start调用Membership.GetUser
调用.Create()时,我在Membership.GetUser中得到以下错误信息:
System.Web.dll中发生类型'System.Data.SqlClient.SqlException'的异常,但未在用户代码中处理
附加信息:找不到存储过程'dbo.aspnet_CheckSchemaVersion'。
我怀疑这与OWIN尚未初始化有关吗? 有谁知道是否有可能从application_start获取当前的GUID?
这是我的代码...
Global.asax
protected void Session_Start(Object sender, EventArgs e)
{
SessionData.Create();
}
会话数据:
public class SessionData
{
public static void Create()
{
using (var db = new BeatBoxV2Context())
{
var membershipUser = Membership.GetUser();
var providerUserKey = membershipUser?.ProviderUserKey;
if (providerUserKey == null) return;
var guid = (Guid)providerUserKey;
var account = db.Account.Find(guid);
var sessionData = new SessionData
{
UserPermissions= db.Permissions.Where(h => h.Guid == guid).ToList()
};
}
}
public List<Permissions> UserPermissions
{
get { return HttpContext.Current.Session["UserPermissions"] != null ? (List<HolterPermission>)HttpContext.Current.Session["UserPermissions"] : null; }
set { HttpContext.Current.Session["UserPermissions"] = value; }
}
}
OK,解决方法如下:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.