Asp.net mvc 4 身份验证错误:密钥不能为空。参数名称:key
我不断得到错误Asp.net mvc 4 身份验证错误:密钥不能为空。参数名称:key,asp.net-mvc-4,Asp.net Mvc 4,我不断得到错误键不能为空。参数名称:键。它看起来好像失去了authCookie,但是请求.IsAuthenticated仍然设置为true。这快把我逼疯了。另外,如果用户未登录,我已经准备好处理。但是错误仍然出现 这里有一个失败的地方 @if (User.IsInRole("Admin")) { <button class="button-green white">Save</button> } 这是我的定制角色扮演者 publ
键不能为空。参数名称:键
。它看起来好像失去了authCookie,但是请求.IsAuthenticated
仍然设置为true。这快把我逼疯了。另外,如果用户未登录,我已经准备好处理。但是错误仍然出现
这里有一个失败的地方
@if (User.IsInRole("Admin"))
{
<button class="button-green white">Save</button>
}
这是我的定制角色扮演者
public override string[] GetRolesForUser(string username)
{
var user = (string)HttpContext.Current.Session["UserRoles"];
var ret = new[] { user };
return ret;
}
问题的解决方案是,这一节
var user=(string)HttpContext.Current.Session[“UserRoles”]代码>,则变为空。特别的是,我回到了fort,在VisualStudio2012中改变了一些事情。感谢您的建议:)您在EditText.cshtml
视图的第78行有什么内容?您确定有标识集吗?你有定制的会员服务提供商吗?@Darin。第78行是我问题中的第一个代码示例。是的,我可以看到我的用户身份。我没有定制的会员服务提供商。但我有一个客户角色提供商。这是最后一个示例。看起来您正在将角色信息存储在会话变量中。您确定会话的设置正确并且返回了一些内容吗?
public override string[] GetRolesForUser(string username)
{
var user = (string)HttpContext.Current.Session["UserRoles"];
var ret = new[] { user };
return ret;
}