1

在我的 .NET CRUD Web 应用程序中,我实现了 MembershipProvider 类。

现在我有列出数据库记录的功能(这个控制器需要经过身份验证的用户)。我需要过滤掉与此登录用户相关的这些记录。

 //
        // GET: /Library/
        public ViewResult Index(String orderBy = "")
        {
            var books = db.Books.Include(b => b.Category).Include(b => b.Writer).Include(b => b.User);

            return View(books.ToList());

        }

我需要知道如何登录用户的 UserId 并在 Where 条件下使用它(我发现的每个教程都谈到了获取用户名,但我需要 UserId)。先感谢您。

我存储在*.mdf数据文件中的数据。

4

1 回答 1

1

我认为你需要的是:

Membership.GetUser().ProviderUserKey

this 的类型是 object,但如果您使用的是开箱即​​用的成员资格,它应该是一个 guid。然后可以使用它来相应地过滤您的选择。


成员资格是内置成员资格提供程序的一部分,具有许多静态方法。

在不知道您的数据库结构/ORM 的情况下,我不能确切地说,但它会是这样的:

Guid userId = (Guid)Membership.GetUser().ProviderUserKey;

var books = db.Books.Where(b => b.UserId == userId);
于 2013-01-02T13:54:55.247 回答