在存储库类中使用Membership类

本文关键字:Membership 存储 | 更新日期: 2023-09-27 17:53:19

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

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

在存储库类中使用Membership类

请反转控制。

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

我需要看到你的呼叫代码,以便进一步帮助你。而且,您没有提到您的会员资格提供程序的类型。