我创建了一个这样的存储库类:
public class ProfileRepository : IProfileRepository
{
private Guid _userIdentifier = (Guid)Membership.GetUser().ProviderUserKey;
....
}
每当我没有登录到我的网站并尝试导航到[Authorize]
过滤页面时,它会在Object reference not set to an instance of an object.
<上的存储库类中抛出错误(private Guid _userIdentifier = (Guid)Membership.GetUser().ProviderUserKey;
) / p>
filter属性未捕获用户未经过身份验证的事实。什么是能够在存储库类中获取当前登录用户ProviderUserKey
的最佳方法,以便可以在整个存储库类中使用它?
答案 0 :(得分:-1)
请控制反转。
存储库不负责寻找用户标识符。无论如何,您实际上是在声明空间中为私有成员分配值。我知道C#允许你这样做,但检查这个代码是如何在封面下编译的,并养成以这种方式编码的习惯。最后,声明应该只是声明。
我需要查看您的通话代码,以便进一步帮助您。此外,您没有提及您的会员提供商的类型。