您必须先调用“WebSecurity.InitializeDatabaseConnection”方法。。。
来源:互联网 发布:佛山经济数据分析 编辑:程序博客网 时间:2024/04/29 00:33
有如下代码:
[Authorize] public ActionResult Index() { ViewBag.ShowList = ShowList.GetShowList(WebSecurity.CurrentUserId); return View(); }
一运行,报错:
您必须先调用“WebSecurity.InitializeDatabaseConnection”方法,然后再调用"WebSecurity"类的任何其他方法。此调用应当放在站点根目录的 _AppStart.cshtml 文件中。
原来要加上特性[Authorize] [InitializeSimpleMembership] public ActionResult Index() { ViewBag.ShowList = ShowList.GetShowList(WebSecurity.CurrentUserId); return View(); }
如果一个个ACTION地加,也可以加在Controller上
[InitializeSimpleMembership] public class UserController : Controller { // // GET: /User/ [Authorize] public ActionResult Index() { ViewBag.ShowList = ShowList.GetShowList(WebSecurity.CurrentUserId); return View(); }}
解决方法 1:
您可以添加 [InitializeSimpleMembership]
到您的控制器而不是为每个操作的顶部,可以使用WebSecurity.GetUserId(User.Identity.Name)
或者,您可以使用
var userId = Membership.GetUser(User.Identity.Name).ProviderUserKey;
参考文章:
http://www.itstrike.cn/Question/6a7fbe3b-f44e-430c-94c6-f760c713063
0 0
- 您必须先调用“WebSecurity.InitializeDatabaseConnection”方法。。。
- 派生类构造函数调用时必须先调用构造函数---java程序员面试宝典P109
- C++ ifstream中的定位操作seekg调用之前,必须先调用clear()
- 必须先进行初始化
- 必须先将 ContentLength 字节写入请求流,然后再调用 [Begin]GetResponse。解决方法
- 要想先做事,必须先做人
- 父类不含无参构造方法子类构造方法必须显式调用
- websecurity tools update
- spring-boot集成WebSecurity
- 为什么部分IO流在调用Close()方法之前要先调用flush()方法
- C#“必须先将当前线程设置为单个线程单元(STA)模式方可进行OLE调用”异常解决方案
- 【WebView】warnning:所有WebView方法必须在主线程调用(4.0) 所有WebView方法必须在同一线程调用(4.4)
- 方法重写,抽象方法必须重写,抽象类。super.父类里面的方法调用方法。
- spring在controller中,在执行其他方法之前,都先调用@ModelAttribute修饰的方法
- 必须先学c语言吗
- 说服他人必须先说服自己
- 代码中日志必须先判断级别
- 为什么RCC必须第一个先配置
- UVa:991 Safe Salutations
- 成员函数的重载、覆盖与隐藏
- @+id/android:list"和"@android:id/list"的写法
- 举杯向月,心字成缺
- VC/C/C++ 代码14
- 您必须先调用“WebSecurity.InitializeDatabaseConnection”方法。。。
- VC/C/C++ 代码16
- 正则表达式 懒惰匹配与贪婪匹配
- 计算机数的表示
- 堆和栈的区别
- C++编程性能问题
- VC/C/C++ 代码16
- 怎么可以这样子
- windows server 2008 R2 部署服务WDS 网络安装Win7