gpt4 book ai didi

ASP.NET Active Directory 成员资格提供程序和 SQL 配置文件提供程序

转载 作者:行者123 更新时间:2023-12-03 14:48:41 24 4
gpt4 key购买 nike

我目前正在为我正在从事的一个新项目设计成员(member)/个人资料计划,我希望从其他人那里得到一些意见。

该项目是一个 ASP.NET Web 应用程序,由于时间短,我正在尝试使用所有内置的 .NET 框架组件。该网站可能会招待 < 5000 名用户。每个用户都有一个配置文件,其中自定义设置和对象将在访问之间保持不变。

我需要使用现有的 Active Directory 进行身份验证。由于 AD 架构无法扩展以保存新字段,因此我需要将用户设置和对象保存在不同的数据存储中。我还被告知 ADAM 可能不是一个可能的解决方案。

我希望将 Active Directory 成员资格提供程序用于我的身份验证方案,并将 SQL 配置文件提供程序用作用户配置文件数据存储。我不希望构建自定义配置文件提供程序,但如果需要,我认为这不会造成太大问题。

我想知道这是否甚至是一个可能的解决方案,如果是这样,是否有人对这种方法有任何运气。

任何意见将不胜感激。

谢谢。

最佳答案

我正在使用 Visual Studio 2012 并尝试按照建议进行操作,但显示错误:

To call this method, the "Membership.Provider" property must be an instance of "ExtendedMembershipProvider".

所以我发现应该对带有MVC 4和 Entity Framework 的VS2012上的默认登录表单进行一些更改,如下所示:

在文件“AccountController.cs”上

关于“公共(public) ActionResult 登录(LoginModel 模型,字符串 returnUrl)”

更改
    if (ModelState.IsValid && WebSecurity.Login(model.UserName, model.Password, persistCookie: model.RememberMe))

为了
    if (ModelState.IsValid && Membership.Provider.ValidateUser(model.UserName, model.Password))

在“公共(public) ActionResult LogOff()”上

更改
    WebSecurity.Logout();

为了
    FormsAuthentication.SignOut();

并添加以下内容: FormsAuthentication.SetAuthCookie(model.UserName, false);
    public ActionResult Login(LoginModel model, string returnUrl)
{
if (ModelState.IsValid && Membership.Provider.ValidateUser(model.UserName, model.Password))
{

FormsAuthentication.SetAuthCookie(model.UserName, false);

return RedirectToLocal(returnUrl);
}

// If we got this far, something failed, redisplay form
ModelState.AddModelError("", "The user name or password provided is incorrect.");
return View(model);
}

关于ASP.NET Active Directory 成员资格提供程序和 SQL 配置文件提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/895002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com