【发布时间】:2015-12-31 23:13:08
【问题描述】:
我正在尝试使用 ASP.NET 标识 2.0 从 global.asax 中的 Session_Start 调用 Membership.GetUser
当 .Create() 被调用时,我在 Membership.GetUser 处收到以下错误:
“System.Data.SqlClient.SqlException”类型的异常发生在 System.Web.dll 但未在用户代码中处理
附加信息:找不到存储过程 'dbo.aspnet_CheckSchemaVersion'。
我怀疑这与 OWIN 尚未初始化有关? 有谁知道是否可以从 application_start 获取当前 GUID?
这是我的代码...
全球.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; }
}
}
【问题讨论】:
标签: asp.net asp.net-mvc asp.net-identity