在存储库类中使用Membership类

时间:2013-01-14 22:36:25

标签: c# asp.net-mvc repository-pattern

我创建了一个这样的存储库类:

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的最佳方法,以便可以在整个存储库类中使用它?

1 个答案:

答案 0 :(得分:-1)

请控制反转。

存储库不负责寻找用户标识符。无论如何,您实际上是在声明空间中为私有成员分配值。我知道C#允许你这样做,但检查这个代码是如何在封面下编译的,并养成以这种方式编码的习惯。最后,声明应该只是声明。

我需要查看您的通话代码,以便进一步帮助您。此外,您没有提及您的会员提供商的类型。