我是使用项目创建时自动生成的Forms身份验证,即使用SqlExpress服务。
我想在Controller中获取当前登录用户的登录名,但是使用User.Identity.Name时,User为null,运行时发生异常。
请教高手!
在View中使用Page.User.Identity.Name可以获取!!
找到原因:我是在Controller的构造函数中使用User属性的。
经调试发现,在最终的控制器实例化之前,基类的User,Session,Request,Response等属性皆为null。显然,是Mvc Framework在进行IOC(即依赖注入)。所以,在实例方法中即可使用上述属性。
但我确实想在实例化之前使用。因为我使用一个中间类继承Mvc Controller基类,再让其他控制器继承此中间类,目的是想传入母版页的公共数据。但我要根据用户角色生成相应的菜单,还真麻烦!!