- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 SiteCore 7 大约一个月或更短时间。
我无法从其中的外部数据库设置 .Net 成员(member)提供程序。
这是我的类(class)的样子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.Security;
namespace MProvider
{
public abstract class MemberProvider : MembershipProvider
{
public override void Initialize(string name, System.Collections.Specialized.NameValueCollection config)
{
base.Initialize(name, config);
}
public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
{
throw new NotImplementedException();
}
public override bool ValidateUser(string username, string password)
{
throw new NotImplementedException();
}
}
}
}
这是SiteCore中的web.config
<switchingProviders>
<membership>
<provider providerName="sql" storeFullNames="true" wildcard="%" domains="*"/>
<provider providerName="MProvider" storeFullNames="true" wildcard="%" domains="*"/>
<membership defaultProvider="sitecore" hashAlgorithmType="SHA1">
<providers>
<clear/>
<add name="sitecore" type="Sitecore.Security.SitecoreMembershipProvider, Sitecore.Kernel" realProviderName="MProvider" providerWildcard="%" raiseEvents="true"/>
<add name="sql" type="System.Web.Security.SqlMembershipProvider" connectionStringName="core" applicationName="sitecore" minRequiredPasswordLength="1" minRequiredNonalphanumericCharacters="0" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="256"/>
<add name="MProvider" type="Sitecore.Security.SitecoreMembershipProvider" realProviderName="MProvider"
applicationName="sitecore" minRequiredPasswordLength="1"
minRequiredNonalphanumericCharacters="0"></add>
</providers>
</membership>}
我的问题是:
非常感谢!
戴夫
最佳答案
几天前,我实现了成员资格提供程序和角色提供程序,以允许具有特定角色的外部数据库用户登录到 sitecore。这个答案对我帮助很大。 https://stackoverflow.com/a/6954337/421490
这是我的成员(member)提供程序实现。我打扫了这个类。所有其他方法和属性都被覆盖并抛出 NotImplementedException。
public class FrontEndMembershipProvider : MembershipProvider
{
public override bool ValidateUser(string username, string password)
{
var webSecurity = DependencyResolver.Current.GetService<IWebSecurity>();
var cleanUsername = CleanUsername(this.Name, username);
if (!string.IsNullOrEmpty(cleanUsername))
{
return webSecurity.ValidateUser(cleanUsername, password) != null;
}
return false;
}
public override MembershipUser GetUser(object providerUserKey, bool userIsOnline)
{
var usersRepository = DependencyResolver.Current.GetService<IUsersRepository>();
var user = usersRepository.GetById((int)providerUserKey);
if (user == null)
{
return null;
}
return this.CreateMembershipUser(user);
}
public override MembershipUser GetUser(string username, bool userIsOnline)
{
var usersRepository = DependencyResolver.Current.GetService<IUsersRepository>();
var cleanUsername = CleanUsername(this.Name, username);
if (!string.IsNullOrEmpty(cleanUsername))
{
var user = usersRepository.GetByEmail(cleanUsername);
if (user != null)
{
return this.CreateMembershipUser(user);
}
}
return null;
}
public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords)
{
var usersRepository = DependencyResolver.Current.GetService<IUsersRepository>();
var membershipUserCollection = new MembershipUserCollection();
var allUsersWithRole = usersRepository.GetAllUsersForSitecore(pageIndex + 1, pageSize);
foreach (var user in allUsersWithRole)
{
membershipUserCollection.Add(this.CreateMembershipUser(user));
}
totalRecords = allUsersWithRole.TotalItemCount;
return membershipUserCollection;
}
private MembershipUser CreateMembershipUser(User user)
{
return new MembershipUser(this.Name, UpgradeUsername(this.Name, user.Email), user.Id, user.Email, null, null, user.UserAccountStateId == (int)UserAccountStateType.Active, user.UserAccountStateId == (int)UserAccountStateType.Banned, user.CreationDate, user.LastActivityDate ?? user.CreationDate, user.LastActivityDate ?? user.CreationDate, user.CreationDate, user.CreationDate);
}
public static string CleanUsername(string domain, string username)
{
if (!string.IsNullOrEmpty(username))
{
if (username.Contains("\\"))
{
var parts = username.Split('\\');
return parts[0] == domain ? parts[1] : null;
}
}
return username;
}
public static string UpgradeUsername(string domain, string username)
{
if (!string.IsNullOrEmpty(username))
{
if (username.Contains("\\"))
{
var parts = username.Split('\\');
if (parts[0] == domain)
{
return username;
}
}
return domain + "\\" + username;
}
return username;
}
关于c# - SiteCore .Net 成员(member)资格示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18240102/
我正在为客户构建一个简单的 Django 应用程序,它允许用户注册付费帐户以访问网站的某些部分;但是,除了几个简单的 Paypal 按钮之外,我从未处理过付款处理。 我的问题是,在这种情况下我该如何安
根据 ISO C 标准 (6.3.16.1),如果“两个操作数都是指向兼容类型的合格或非合格版本的指针,并且左边指向的类型具有所有右边指向的类型的限定符”。我在我的静态分析工具中收到了警告,但我不确定
我用 paypal 创建了 2 个订阅按钮。此按钮适用于不同的成员(member)资格:1. 基本 2. 专业。我正在尝试使用此按钮订阅成员(member)资格并且工作没有任何问题。但是当我试图通过其
如果我想做一个管理功能,比如删除 asp.net mvc 示例附带的 asp.net 成员(member)资格内容中的用户。 我尝试查看表格,发现有多个表格添加了行。我想一定有一个更简单的方法。 最佳
我希望在新网站上创建博客和论坛。我希望用户注册后可以在论坛上发帖,在博客上发表评论,并拥有自己的公共(public)个人资料页面。 我有使用 BlogEngine.NET 的经验,所以希望使用它。我目
我对 MVC 和使用 ASP.NET MVC 4 开发应用程序还很陌生。对于身份验证,我在域中使用 Windows 身份验证和 Active Directory。下一步是授权用户(不使用成员(memb
我试图找出用户第一次使用asp.net 成员(member)资格(mysql)登录,并根据它显示一些协议(protocol)页面。我遵循的程序是: When a user registers a ma
我最近刚刚研究出如何使用 PayPal IPN 在用户支付一定金额后启动高级成员(member)资格。一旦用户点击升级帐户,他们就会被定向到 PayPal 进行支付,然后 IPN 就会启动更新数据库以
我正在尝试学习 Java 中的继承和接口(interface)。我有三个不同的类:Customer、SilverCustomer 和 GoldCustomer。 SilverCustomer 和 Go
我刚刚收到一封来自 Apple 开发者门户的电子邮件(2 月 20 日),说我需要续订我的成员(member)资格。当我查看我的帐户时,我的订阅实际上在 4 月 20 日用完。我的问题是,如果我现在续
要向 iOS 应用程序添加推送通知,您是否需要拥有已注册 iOS 成员(member)计划的苹果开发者帐户? 最佳答案 Yes , it is - see the terms here 看这里- In
protected void Button2_Click(object sender, System.EventArgs e) //logout { if (System.Web.HttpCo
我正在构建一个使用蓝牙与远程传感器通信的 iPhone 应用程序。外设是蓝牙自行车速度传感器。该应用程序使用来自外围设备的信息来计算行驶距离。 我看到有一个蓝牙特别兴趣小组 (SIG) 负责确保制造商
我正在使用 asp.net mvc 示例应用程序,并对其进行了一些扩展。我使用 asp.net 成员(member)身份进行用户登录和注册。 我现在想更改它,以便当人们注册时,它不会立即能够登录,而是
我为我的客户创建了一个成员(member)登录系统,现在他们不希望用户在创建新密码时使用他最后 5 个密码之一。 这是内置的东西吗?我怎样才能实现它? 最佳答案 asp.net 成员(member)登
我正在为一个公共(public)站点开发 ASP.NET4.0/C# 应用程序,该应用程序仅需要对在关联企业工作的员工进行身份验证。这个想法是让网站拥有一个 CMS,以便员工可以进入并更改某些内容,而
如何通过 ID 获取用户?MembershipUser mu=Membership.GetUser("用户名");但是,我想通过 ID 获取用户,而不是通过名称获取用户。 最佳答案 Membershi
是否可以让用户拥有多个资格之一才能从事 HIT。例如: qualifications = Qualifications() qualifications.add( Requirement(co
现在我们有几个数据库,每个数据库都有自己的 aspnet 成员表。我们希望将所有成员集中到一个数据库中。例如一个主登录页面,他们将在其中指定数据库、用户名和密码。然后我们将检查集中式数据库并根据他们在
我正在使用 Paypal 的定期成员(member)付款。我想知道是否有成员(member)手动从paypal取消成员(member)资格,我如何从paypal获取返回值/URL,以便我可以跟踪成员(
我是一名优秀的程序员,十分优秀!