asp.net-mvc - 使用另一个站点的 ASP.NET 成员身份在一个站点上进行身份验证
问题描述
我们有一个使用 ASP.NET Membership 作为其用户帐户的站点。假设该站点位于www.domain.com
.
我们有另一个站点,比方说 at www.domain.com/site2
,由于其他原因,它已经连接到站点 #1 的数据库。我们希望实现站点#2 的用户名/密码登录,并希望使用站点#1 的现有登录凭据,因为站点#1 是他们申请访问各种系统等权限的地方。
我并不是要创建一种 SSO 类型的解决方案,即登录到一个站点会让您登录到另一个站点,这是其他问题所涉及的。
我希望他们能够输入他们在站点#1 上的用户名和密码,在站点#2 上输入它,然后将它们授权给站点#2。
这可能吗?
站点 #1 的 Web.config:
<machineKey decryptionKey="AutoGenerate" validation="SHA1" validationKey="AutoGenerate" />
<membership>
<providers>
<clear />
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="VTDB"
enablePasswordRetrieval="false"
enablePasswordReset="true"
requiresQuestionAndAnswer="false"
requiresUniqueEmail="true"
maxInvalidPasswordAttempts="5"
minRequiredPasswordLength="8"
minRequiredNonalphanumericCharacters="0"
passwordAttemptWindow="10"
applicationName="/" />
</providers>
</membership>
<profile>
<providers>
<clear />
<add name="AspNetSqlProfileProvider"
type="System.Web.Profile.SqlProfileProvider"
connectionStringName="VTDB"
applicationName="/" />
</providers>
</profile>
<roleManager enabled="true">
<providers>
<clear />
<add connectionStringName="VTDB"
name="AspNetSqlRoleProvider"
applicationName="/"
type="System.Web.Security.SqlRoleProvider" />
</providers>
</roleManager>
....
站点 #2 的 Web.config:
<membership defaultProvider="AspNetSqlMembershipProvider">
<providers>
<clear />
<add name="AspNetSqlMembershipProvider"
type="System.Web.Security.SqlMembershipProvider"
connectionStringName="VTConnString" />
</providers>
</membership>
<machineKey decryptionKey="AutoGenerate" validation="SHA1" validationKey="AutoGenerate" />
WhereVTConnString
指向站点#1 的数据库。
但是当我调用Membership.ValidateUser(userName, password)
站点 #2 时,它总是返回false
.
解决方案
我发现了这个问题:
applicationName="/"
我在站点 #2 的 web.config中丢失了。现在applicationName
s 设置相同,它可以正常工作。
推荐阅读
- html - 如何用纯css实现红绿灯的灯光颜色变化?
- vba - 如何选择事件日期为周末的所有记录并导出到另一个表
- javascript - 输出中的附加零
- c++ - 您可以使用自定义比较器将 std::map 变成无序映射吗?
- mysql - 为什么 count(column) 和 count(*) 返回相同的输出,即使记录中有 NULL 值?
- c# - 使用 C# 查看 MemberInfo 是否匹配 BindingFlags
- javascript - 使用 JS 使 try/catch 例程不那么冗长
- r - 如何计算R中的双重积分
- postgresql - operator does not exist: json @> unknown
- c++11 - Can I use pintool to get what is executed in the source code?