0

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

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;

filter 属性没有捕捉到用户未通过身份验证的事实。能够在存储库类中获取当前登录用户的最佳方法是什么,以便可以ProviderUserKey在整个存储库类中使用它?

4

1 回答 1

-1

请控制反转。

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

为了进一步帮助您,我需要查看您的调用代码。此外,您没有提及您的会员提供商的类型。

于 2013-01-15T03:20:34.697 回答