0

我正在使用 MVC 3 .Net 成员资格。这对我来说很新,一旦他们成功登录,我就会将用户重定向到他们的用户详细信息页面。这是登录控制器。我的用户详细信息操作期望将用户的 GUID 传递给它,但我不知道该怎么做。我试过User.id?和 Membershipt.GetUser() 等等,但我似乎无法获得用户详细信息操作所需的用户 GUID。有任何想法吗?提前致谢

[HttpPost]
    public ActionResult LogOn(LogOnModel model, string returnUrl)
    {
        if (ModelState.IsValid)
        {
            if (Membership.ValidateUser(model.UserName, model.Password))
            {
                FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe);
                if (Url.IsLocalUrl(returnUrl) && returnUrl.Length > 1 && returnUrl.StartsWith("/")
                    && !returnUrl.StartsWith("//") && !returnUrl.StartsWith("/\\"))
                {
                    return Redirect(returnUrl);
                }
                else
                {
                    return RedirectToAction("Details", "User", new { id = User.??????});
                }
            }
            else
            {
                ModelState.AddModelError("", "The user name or password provided is incorrect.");
            }
        }

        // If we got this far, something failed, redisplay form
        return View(model);
    }
4

1 回答 1

0

我通过快速搜索找到的只是问题,而不是解决方案或示例。虽然这本身并不意味着什么——我不熟悉“AccountModel”和“LogOnModel”命名空间以及相关的方法。但我仍然可以提供帮助。

第一个问题:GUID 存储在哪里?您使用的是目录 (AD/LDAP) 还是数据库 (SQL)。GUID 是“在那里”,如果它已经可以访问,它不会是类似于 model.GUID 的东西。您的 ValidateUser 找到了用户名,但它对 GUID“一无所知”。例如,当您获得有效的用户名和密码时,ADODB、Linq 和 DirectorySearcher 都有相对简单的方法来获取 GUID。

于 2012-05-02T11:26:33.933 回答