gpt4 book ai didi

asp.net - 通过代码更改 ASP.NET 成员资格提供程序

转载 作者:行者123 更新时间:2023-12-04 23:24:09 25 4
gpt4 key购买 nike

我们需要在 ASP.NET WebFroms 应用程序中同时支持两个成员资格提供程序。确实用户通过选中复选框表示他/她想通过 Asp Net Sql Membership Provider 登录或 Asp Net Active Directory Membership Provider
我的想法是根据复选框选中的值以编程方式更改成员(member)资格提供程序。但是不知道怎么才能做到这一点。

任何帮助都受到高度赞赏。

最佳答案

您需要的是一个包含两个真实提供者的复合提供者和一个可以确定应该使用哪个提供者的服务。

更新

您的 CompositeProvider可能看起来像这样,并且可以像任何其他提供程序一样在您的 web.config 中注册。

public class CompositeProvider : MembershipProvider
{
private MembershipProvider SqlProvider
{
get { return Membership.Providers["Sql Provider"]; }
}

private MembershipProvider AdProvider
{
get { return Membership.Providers["Ad Provider"]; }
}

// This property implements the logic that knows how
// to switch between the two providers.
private MembershipProvider Provider
{
get
{
var context = HttpContext.Current;

if (context != null)
{
var session = context.Session;

if (session != null &&
session["use_ad_provider"] == "true")
{
return AdProvider;
}
}

return SqlProvider;
}
}

public override bool ChangePassword(string username,
string oldPassword, string newPassword)
{
return Provider.ChangePassword(username, oldPassword, newPassword);
}

public override bool DeleteUser(string username,
bool deleteAllRelatedData)
{
return Provider.DeleteUser(username, deleteAllRelatedData);
}

public override bool EnablePasswordReset
{
get { return Provider.EnablePasswordReset; }
}

public override bool EnablePasswordRetrieval
{
get { return Provider.EnablePasswordRetrieval; }
}

// TODO: Implementation of all other members.
}

关于asp.net - 通过代码更改 ASP.NET 成员资格提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16105187/

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